【问题标题】:Full .NET references .NET Standard class library: FileNotFoundException完整的 .NET 引用 .NET Standard 类库:FileNotFoundException
【发布时间】:2019-10-09 10:11:11
【问题描述】:

我刚刚使用 Visual Studio 2019 (16.3.3) 创建了 2 个项目:

  1. 类库 (netstandard2.0)
    • +Microsoft.EntityFrameworkCore,版本 2.2.4
    • +自定义Repository类隐藏DbContext
  2. 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


【解决方案1】:

这是一个错误并没有修复,因为没人关心:https://developercommunity.visualstudio.com/content/problem/769172/a-full-net-project-is-not-in-packagereference-form.html

解决方法:

  1. 添加任意 NuGet 包(例如NLogAutoMapperMvvmLightLibs 或其他)。
  2. 右键单击新的 packages.config 文件 → “Migrate packages.config to PackageReference...”(如果是“PackageReference”,则可能不需要此步骤是您的“默认包管理格式”,检查工具 → NuGet 包管理器)
  3. 工作!

甚至更快:添加到您的*.csproj

  <ItemGroup>
    <PackageReference Include="NLog" Version="4.6.7" />
  </ItemGroup>

警告:请谨慎使用 ReSharper 的“优化引用...”等工具支持!它将删除未使用的引用。 :-(

【讨论】:

  • Visual Studio 反馈系统:我检测到在过去的 35 天里,这个问题没有太多的产品团队活动和非常少量的新投票或 cmets。基于此,它的严重性和受影响的区域,根据我的经验,这个问题不太可能得到解决。
猜你喜欢
  • 1970-01-01
  • 2017-07-04
  • 2022-12-20
  • 2017-01-06
  • 2018-10-13
  • 1970-01-01
  • 2021-12-04
  • 2017-03-11
  • 2017-07-11
相关资源
最近更新 更多