【发布时间】:2019-10-09 10:11:11
【问题描述】:
我刚刚使用 Visual Studio 2019 (16.3.3) 创建了 2 个项目:
- 类库 (
netstandard2.0)- +
Microsoft.EntityFrameworkCore,版本 2.2.4 - +自定义
Repository类隐藏DbContext类
- +
- WPF 项目 (
v4.7.1)- +对上述类库的引用
- +一些使用
Repository的代码:
var r = new Repository(@"Server=(localdb)\MsSqlLocalDB; Database=EfCore2Wpf; Trusted_Connection=True;");
DataContext = r.GetItems(); // FileNotFoundException here.
这是完整的例外:
System.IO.FileNotFoundException: '无法加载文件或程序集“Microsoft.EntityFrameworkCore, Version=2.2.4.0, Culture=neutral, PublicKeyToken=adb9793829ddae60”或其依赖项之一。找不到指定的模块。'
没错! \WpfApp\bin\Debug 文件夹内没有 Microsoft.EntityFrameworkCore.dll。
但是为什么?
(我有一些具有相同项目类型的旧解决方案并且它们有效。这里有什么问题?)
供您参考:
1) 包含单个 .NET Core 包(如 Microsoft.EntityFrameworkCore.SqlServer)会导致一百万个 <Reference Include="..."><HintPath>..\packages\...dll</HintPath></Reference> 条目。 没办法。
2) 据我所知,我必须迁移旧 WPF 项目以传递间接 .NET Core 引用:https://docs.microsoft.com/en-us/nuget/consume-packages/migrate-packages-config-to-package-reference。但目前我的 WPF 项目中不需要任何 NuGet 包,所以没有package.config。如果没有package.config 文件我无法迁移!
【问题讨论】:
-
您在一个问题中提出了很多问题,同时还设置了限制,例如无法在项目中添加 .NET Core 包。请具体一点,一次只问一个问题..
-
EF Core 2.x 支持 .NET Framework 4.7.2。你读过this吗?
-
@EriawanKusumawardhono 目标:在不引用我不需要的包的情况下运行它。
-
@mm8 升级到 .NET Framework 4.7.2 不起作用。
-
@Marcel:如果手动将DLL复制到输出文件夹中是否有效?
标签: c# .net visual-studio nuget entity-framework-core