c# - .NET Standard 库输出不包括 nuget 依赖项
问题描述
我有这三个项目:
- 一个 ASP.NET Core MVC 应用程序(面向 .NET Framework 4.6.2)
- 一个包含我的 EF Core 模型、迁移和 DbContext 类的类库(面向 .NET Standard 2.0,之前是 .NET Framework 4.6.2)。
- 用于使用 EF Core 迁移(针对 .NET Framework 4.6.2)更新数据库的控制台应用程序。
1 和 3 均参考 2。我刚刚将旧的 .NET Framework 类库替换为针对 .NET Standard 的新类库。类库使用Microsoft.EntityFrameworkCore.Proxies
NuGet 包。
一切都没有错误地构建,我的单元测试全部运行,并且 ASP.NET Core 应用程序运行没有问题。DbContext
我的问题是,用于更新数据库的控制台应用程序构建、运行,但在构造函数中初始化此行时遇到运行时错误:
ChangeTracker.LazyLoadingEnabled = false;
说它无法加载程序集Microsoft.EntityFrameworkCore.Proxies
。经过调查,我发现该Microsoft.EntityFrameworkCore.Proxies.dll
文件不在控制台应用程序或类库项目的构建输出中。类库项目的输出中唯一的 .dll 是项目 .dll 本身,旧的 .NET Framework 版本在输出中也包含所有 NuGet 包 .dll,并且使用数据库更新工具运行良好。
是否有必要在 .NET Standard 库的输出中包含依赖项?
解决方案
这是另一个建议,取自CEZARY PIĄTEK 的博客
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
</PropertyGroup>
</Project>
推荐阅读
- apache-spark - Spark失败:org.apache.spark.shuffle.FetchFailedException:无法连接到/
- laravel-backpack - 使用 Laravel Backpack 的可用性表
- python - Python - 转换数据框列中的货币值
- python - 如何检查列表中的所有元素是否在另一个列表中但使用索引
- reactjs - 带有 Reactjs + TS 的 Stenciljs 组件不起作用
- systemd - systemd 如何替换 populate-volatiles.sh?
- flutter - 无法将 Flutter 连接到 laravel-websocket 服务器
- android - 如何在这个颤振中添加电子邮件验证?我需要在登录之前验证用户
- docker - InfluxDB“influx”命令不会连接到 CLI
- python-3.x - 有没有办法将按键绑定到 root 而不会干扰 tkinter 中的默认绑定