为Microsoft.EntityFrameworkCore.Install检测到版本冲突

use*_*992 14 c# .net-core asp.net-core-webapi ef-core-2.1

将asp.net核心api添加到我正在处理的现有项目时,出现以下错误。

“直接检测到Microsoft.EntityFrameworkCore.Install /引用Microsoft.EntityFrameworkCore 2.2.1的版本冲突,以解决该问题”

我尝试添加Nuget程序包,但在许多不同的程序包中出现了进一步的版本冲突,并且该过程始终失败。起初我以为这可能是我的项目的问题,所以我从头开始了一个新的解决方案,并设法通过几个简单的步骤来复制该问题。

  1. 创建一个新的解决方案(EFDemo)
  2. 将新的.net Core类库添加到名为EFDemo.BL的解决方案中
  3. 将以下Nuget包添加到项目EFDemo.BL中(因为我正在为新项目使用现有数据库)
  4. Microsoft.EntityFrameworkCore.SqlServer(v2.2.1)
  5. Microsoft.EntityFraneworkCore.Tools(v2.2.1)
  6. 添加一个名为EFDemo.Api的新.net核心Web应用程序,然后选择API项目模板。
  7. 将引用从EFDemo.BL添加到EFDemo.Api。
  8. 构建并查看故障。

我已经阅读了以下文章,但是它的解决方案对我不起作用,因为我的任何csproj文件都没有引用“ Microsoft.EntityFrameworkCore”。 检测到NuGet软件包的版本冲突

我还重新安装了.net SDK,重新启动了100万次,但仍然无法理解问题所在。

小智 10

我最近遇到了相同的错误。

我做了些什么来解决这个问题:

已安装.Net Core 2.2 SDK

然后在我的项目中,我更改了所有.csproj文件:

  <PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
Run Code Online (Sandbox Code Playgroud)

而之前是:

      <PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
Run Code Online (Sandbox Code Playgroud)

这立即帮助了并且错误消失了。

  • 那对我也有用!谢谢!! (2认同)

use*_*992 8

对此的答案很难分类,因为在试图弄清楚这一点时我做了很多更改。最后,我相信以下步骤可以解决我的问题:

  • 将VS升级到最新版本(v15.9.3)
  • 卸载.Net Core 2.1和2.2 SDK(我的项目当时使用的是2.1)
  • 安装.Net Core 2.2 SDK
  • 将解决方案中的所有项目转换为使用.Net Core 2.2(很痛苦。我希望有一个Retarget All功能!)
  • 重新启动,清理,构建,即可运行。ew

现在要做一些工作,而不是与我的工具作斗争!


Kru*_*mar 3

我不确定你在项目中安装了什么包。

但现在 Visual Studio 只添加一个 nuget 包,其中包括 ASP.NET Core 应用程序所需的所有包。

尝试安装此软件包并删除所有其他软件包,看看它是否适合您。

微软.AspNetCore.All

这样至少在 Microsoft 软件包中不会出现版本冲突。然后,您可以验证您可能安装的其他外部软件包是否会导致问题。