首页 > 解决方案 > 检测到 NuGet 包的版本冲突

问题描述

我正在开发一个 ASP.Net 核心 2.1 Web 应用程序项目。我的解决方案中有 1 个项目和 3 个其他库,它是高级架构(数据访问层(DAL)、业务层(BL)、公共层(CL)),所以我需要添加引用来连接一些库和项目。我添加了CL对我的项目、库DALBL. 现在我必须添加BL对我的项目的引用,但是当我添加时,我得到了这种类型的错误:

从 Microsoft.EntityFrameworkCore/Install/reference Microsoft.EntityFrameworkCore 2.2.1 检测到版本冲突直接到项目“WEB”以解决此问题

当我尝试安装该版本时,它说

包还原失败。回滚“WEB”的包更改

我还可以提一下,当我添加BL对我的项目的引用时,它还包括DAL, 和CL本身,(并且DAL包含Microsoft.EntityFrameworkCore(2.2.1),无法理解问题是什么,有什么想法吗?

问题的附加图像在这里

项目.csproj

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\CL\CL.csproj" />
</ItemGroup>

</Project>

CL如您所见,我已添加参考,现在我想添加BL参考并收到此错误

标签: c#asp.netasp.net-core

解决方案


问题是因为您的 {projectName}.csproj 文件之一的本地目录路径请通过右键单击项目并选择 Edit {projectName}.scproj 查看您的 .csproj 文件

例如

<Reference Include="Microsoft.EntityFrameworkCore">
      <HintPath>..\..\..\..\..\..\..\Program Files\dotnet\sdk\NuGetFallbackFolder\Microsoft.EntityFrameworkCore\2.1.1\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll</HintPath>
    </Reference>

如果是,请转到 Nuget 包管理器并添加您的库,选择 nuget.org 作为包源

从 nuget 包管理器 csproject 文件恢复后,将添加以下标记

<PackageReference Include="Microsoft.Extensions.Identity.Stores" Version="2.1.1" />

这里 {projectName} 是 C# 项目的名称。


推荐阅读