为Microsoft.EntityFrameworkCore.Install

时间:2019-01-23 08:45:03

标签: c# api .net-core ef-core-2.1

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

  

“检测到Microsoft.EntityFrameworkCore.Version冲突,直接将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”。 Version conflict detected for NuGet packages

我还重新安装了.net SDK,重新启动了100万次,但仍然无法理解问题所在。 任何帮助,指导或理想的解决方案都将不胜感激。

谢谢

7 个答案:

答案 0 :(得分:6)

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

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

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

答案 1 :(得分:3)

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

我为解决这个问题所做的事情

已安装.Net Core 2.2 SDK

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

  <PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>

之前是:

      <PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>

这很快就解决了,错误消失了。

答案 2 :(得分:2)

对我来说,这对本文有所帮助,这是对配置的非常简单的更改,但我忘记更改了:

<PropertyGroup>
  <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>

https://dotnetcoretutorials.com/2018/11/18/how-to-target-net-core-2-2/

答案 3 :(得分:1)

我不确定您在项目中安装了什么软件包。

但是如今,Visual Studio仅添加一个nuget程序包,其中包括asp.net核心应用程序所需的所有程序包。

尝试安装此软件包并删除所有其他软件包,然后查看适合您的

Microsoft.AspNetCore.All

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

答案 4 :(得分:1)

我修复了此问题,只需安装.NET Core 2.2并将TargetFramework标记更改为netcoreapp2。

<PropertyGroup>
  <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>

答案 5 :(得分:0)

对我来说有帮助,节省了很多时间。

<PropertyGroup>
  <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>

答案 6 :(得分:0)

我已经按照步骤解决了我的问题

  1. 下载并安装最新的框架(以我的情况为dotnet core 2.2)
  2. 从项目属性中将项目目标框架设置为最高(在本例中为dotnet core 2.2)
  3. 清洁溶液 4重建解决方案
  4. 更新所有版本争议(可选)
  5. 重建并保存。

希望这会有所帮助。