【问题标题】:Version Conflict detected for Microsoft.EntityFrameworkCore.Install检测到 Microsoft.EntityFrameworkCore.Install 的版本冲突
【发布时间】:2019-06-16 19:16:00
【问题描述】:

在我正在处理的现有项目中添加 asp.net core 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”。 Version conflict detected for NuGet packages.

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

【问题讨论】:

    标签: c# .net-core asp.net-core-webapi ef-core-2.1


    【解决方案1】:

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

    但现在,Visual Studio 只添加了一个 nuget 包,其中包括 asp.net 核心应用程序所需的所有包。

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

    Microsoft.AspNetCore.All

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

    【讨论】:

    • 不幸的是,这对我不起作用,但感谢您的建议!
    • 该包引入了大量的依赖关系,这些依赖关系都可能发生冲突。比如我的版本依赖EntityFrameworkCore >=2.1.1 &&
    【解决方案2】:

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

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

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

    【讨论】:

    • 对我来说,我只需要安装新的 SDK (2.2) 并删除旧的 (2.1)
    • 对我来说,尝试安装Microsoft.EntityFrameworkCore.SqlServer 2.2.6 却没有使用 Web api。当我将属性更改为 2.2 时出现错误,所以刚刚使用 2.2 创建了一个新的 web api 应用程序并安装了Microsoft.EntityFrameworkCore.SqlServer,它安装没有问题。不知道我是否需要其他任何东西。
    【解决方案3】:

    对我来说,对这篇文章很有帮助,只是对配置的一个非常简单的更改,我忘记更改了:

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

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

    【讨论】:

      【解决方案4】:

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

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

      已安装 .Net Core 2.2 SDK

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

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

      而之前是:

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

      这立即有所帮助,错误消失了。

      【讨论】:

      • 是的,谢谢,在安装 .NET Core 2.2 并将 TargetFramework 更改为 2.2 之后,我还必须将我的 WebAPI 项目“Microsoft.AspNetCore.App”更改为版本“2.2.5”跨度>
      【解决方案5】:

      我只安装了 .NET Core 2.2 并将 TargetFramework 标记更改为 netcoreapp2 就解决了这个问题。

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

      【讨论】:

        【解决方案6】:

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

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

        希望这会有所帮助。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-01-13
          • 1970-01-01
          相关资源
          最近更新 更多