引用的项目依赖项DLL不被复制

RA.*_*RA. 4 c# dll dependencies .net-assembly visual-studio-2017

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

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

Project 1(主要)已为project 2和设置了引用3

对于项目,3我已经安装了的NuGet依赖项Microsoft.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.
Run Code Online (Sandbox Code Playgroud)

当然,这是一个丢失的DLL文件-没有实体框架DLL被复制到app Debug目录。

为什么会这样呢?这是预期的行为吗?我是否还必须安装Microsoft.EntityFrameworkCore.Sqlitefor项目的依赖项1?对于我而言,毫无意义,因为它引用了没有使用它的项目依赖项。

我尝试了什么:

使用Visual Studio 2017。

RA.*_*RA. 5

通过在我的.csproj文件中添加以下行来解决此问题:

<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
Run Code Online (Sandbox Code Playgroud)

专门给PropertyGroup小组。

不知道为什么会有这样的变化,如果有人可以解释并发表评论,那将是很棒的。我将添加到此答案的任何其他信息。

  • 谢谢你,因为它为我指明了正确的方向。更详细的解释在这里:https://www.hanselman.com/blog/ReferencingNETStandardAssembliesFromBothNETCoreAndNETFramework.aspx (2认同)