首页 > 解决方案 > 未复制引用的项目依赖项 DLL

问题描述

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

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

Project 1(main) 设置了对 project23.

对于该项目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目录。

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

我尝试了什么:

使用 Visual Studio 2017。

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

解决方案


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

<RestoreProjectStyle>PackageReference</RestoreProjectStyle>

具体到PropertyGroup组。

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


推荐阅读