【发布时间】:2018-11-02 00:32:58
【问题描述】:
我的项目解决方案目前有三个项目:
-
MyProject,这是我的主要启动项目(使用
.NET Framework 4.7) - WPF,UI 规范, -
MyProject.Core - 类库 (
.NET Standard 2.0) - 保存模型以及所有“幕后”数据 -
MyProject.Relational - 类库 (
.NET Standard 2.0) - 负责处理和保存数据库特定信息
项目1(主)设置了对项目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.
这当然是缺少的 DLL 文件 - 没有实体框架 DLL 被复制到应用程序 Debug 目录。
为什么会这样?这是预期的行为吗?我是否还必须为项目1 安装Microsoft.EntityFrameworkCore.Sqlite 的依赖项?对我来说毫无意义,将相同的依赖项引用到没有使用它的项目。
我尝试了什么:
- 清理项目,删除 bin/obj 目录,
- 将项目引用属性设置
copy local设置为True, - 本题给出的解决方案:Referenced DLL not being copied to referencing project
使用 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