繁体   English   中英

System.IO.FileNotFoundException:无法加载文件或程序集 'Microsoft.EntityFrameworkCore,版本 = 2.2.0.0,

[英]System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.EntityFrameworkCore, Version=2.2.0.0,

我使用 AWS Lambda function 模板创建了一个 .net 核心 2.2 项目。 添加了一个 MySQL EntityFramework nuget package。我的项目目标是 .NET Core 2.2。 我有使用 DbContext 和 EF 东西的代码。 当我使用他们的 lambda 测试工具运行应用程序时,出现此错误:System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.EntityFrameworkCore, Version=2.2.0.0, .....

使用 Process Monitor,我可以看到该应用程序正在尝试从不存在的...\bin\Debug.netcoreapp2.2\Microsoft.EntityFrameworkCore.dll 加载 Microsoft.EntityFrameworkCore.dll。

我的问题是为什么该文件夹中没有任何支持程序集? 文件夹中唯一的程序集(.dll 文件)是我的应用程序。

以下步骤可帮助您解决此问题:

  1. 删除所有binobj文件夹。
  2. 清洁解决方案。 [构建>清洁解决方案]。
  3. 重建解决方案

尝试在代码中的某处明确使用某种类型的Microsoft.EntityFrameworkCore命名空间。 例如:

var _ = new Microsoft.EntityFrameworkCore.DbContextOptionsBuilder();

它会强制构建将程序集复制到结果目录。

我有一些想法。 首先检查您要引用的文件夹是否允许 Visual 具有访问权限。

如果它不起作用,请尝试通过 nugget 重新安装软件包(如果我没记错的话,我遇到了同样的错误。)。 如果它显示它没有安装在 nugget manager 中,只需安装它,即使是几次。

这是最后您的问题的答案: NuGet 将 dll 放在哪里?

我遇到了类似的问题,在我的例子中,从 .csproj 文件中删除该行有帮助

<PublishReadyToRun>true</PublishReadyToRun> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM