【问题标题】:Referenced project dependencies DLL are not being copied未复制引用的项目依赖项 DLL
【发布时间】:2018-11-02 00:32:58
【问题描述】:

我的项目解决方案目前有三个项目:

  1. MyProject,这是我的主要启动项目(使用 .NET Framework 4.7) - WPF,UI 规范,
  2. MyProject.Core - 类库 (.NET Standard 2.0) - 保存模型以及所有“幕后”数据
  3. MyProject.Relational - 类库 (.NET Standard 2.0) - 负责处理和保存数据库特定信息

项目1(主)设置了对项目23的引用。

对于项目3,我安装了NuGetMicrosoft.EntityFrameworkCore.Sqlite (2.0.3) 依赖项。

现在,当我终于想使用项目3 并调用它的方法时,抛出了以下异常:

System.IO.FileNotFoundException: 'Could not load file or assembly 'Microsoft.EntityFrameworkCore, Version=2.0.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' or one of its dependencies. The system cannot find the file specified.

这当然是缺少的 DLL 文件 - 没有实体框架 DLL 被复制到应用程序 Debug 目录。

为什么会这样?这是预期的行为吗?我是否还必须为项目1 安装Microsoft.EntityFrameworkCore.Sqlite 的依赖项?对我来说毫无意义,将相同的依赖项引用到没有使用它的项目。

我尝试了什么:

使用 Visual Studio 2017。

【问题讨论】:

  • 您的项目引用中有 Microsoft.EntityFrameworkCore 吗?
  • 顺便说一句,我刚刚尝试了这个 nuget,它对我有用,也许更新你的 nuget,或者在你的项目上做一个 update-package -reinstall
  • @TheGeneral 是的,它是i.imgur.com/h8Bhfnd.png。它在项目3 中被引用。 update-package -reinstall 没有帮助。问题是这些 DLL 文件没有被复制到我的应用程序目录中。
  • 您可以为 MyProject.Relational 发送您的 CSPROJ 文件的图像吗?
  • @DonaldDuck,我知道是 CSPROJ :)

标签: c# dll visual-studio-2017 dependencies .net-assembly


【解决方案1】:

通过将以下行添加到我的 .csproj 文件中解决了这个问题:

<RestoreProjectStyle>PackageReference</RestoreProjectStyle>

专门针对PropertyGroup 组。

不知道为什么会产生如此大的差异,如果有人可以解释并在评论中发表,那就太好了。我将在此答案中添加任何其他信息。

【讨论】:

  • 感谢您,因为它为我指明了正确的方向。更详细的解释在这里:hanselman.com/blog/…
  • 使用这个神奇的修复程序后,我不得不再次安装包,因为 nuget 工具忘记了安装。
猜你喜欢
  • 2013-12-22
  • 2010-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-01
  • 2014-06-26
  • 1970-01-01
  • 2020-11-12
相关资源
最近更新 更多