检测到NuGet软件包的版本冲突

时间:2019-01-21 10:14:13

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

我正在研究ASP.Net核心2.1 Web应用程序项目。我的解决方案中有1个项目,还有其他3个库,它们是高级架构(数据访问层(DAL),业务层(BL,公共层(CL)),所以我需要添加引用以连接一些库和项目。我为项目和库CLDAL添加了BL引用。现在,我必须向项目添加引用BL,但是当我添加项目时,会出现这种错误:

  

从Microsoft.EntityFrameworkCore /安装/引用Microsoft.EntityFrameworkCore 2.2.1到版本'WEB'直接检测到版本冲突

当我尝试安装该版本时,它会显示

  

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

我还可以提到,当我向项目中添加引用BL时,它还包含DALCL本身,(而DAL包含{{1} }(2.2.1),无法理解问题所在,有任何想法吗?

https://imgur.com/a/rtjfP1i此处的问题的其他图片

project.csproj

Microsoft.EntityFrameworkCore

您已经看到,我已经添加了<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参考并得到此错误

3 个答案:

答案 0 :(得分:0)

问题是因为您拥有{projectName} .csproj文件之一的本地目录路径 右键单击项目,查看.csproj文件,然后选择Edit {projectName} .scproj

例如

<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#项目的名称。

答案 1 :(得分:0)

我只想解决这个问题,但是使用EntityFrameworkCore 3.0预览版。我通过简单地将所有entityframework 3.0(preview)nuget包降级到最新的稳定版(2.2)来解决了这个问题。

希望这对某人也有帮助,花了我几个小时...

答案 2 :(得分:0)

选项1检查Visual Studio错误窗口,并确定哪个程序包引起冲突。 确保两个软件包都保存了版本代码