检测到包降级: xxx从 4.3.0 降级到 4.0.0。直接从项目引用包以选择不同版本 。

问题:

        项目升级从.net core 3.0 升级到 .net 5后,dotnet run没有问题,dotnet publish时报 “多个类库报检测到包降级: xxx从 4.3.0 降级到 4.0.0。直接从项目引用包以选择不同版本 。”错误,无法生成打包项目。

原因:

         依赖项包在包的更高版本上指定了版本约束,而不是最终解析还原。 这是由于最接近的 wins规则-解析包时,图形中的 “即将出现的包” 的版本将覆盖具有相同 ID 的远处包的版本

解决办法:

        微软文档 https://docs.microsoft.com/zh-cn/nuget/reference/errors-and-warnings/nu1605

         当在 .NET Core 3.0 或更高版本的项目中同时引用时,与 .NET Core 1.0 和1.1 随附的某些包组合不兼容。 问题包通常以 System. 或 Microsoft. 开头,并具有4.0.0 和4.3.1 之间的版本号。 在这种情况下,降级消息将具有从运行时开始的包依赖关系链。

    若要解决此问题,在类库编辑项目文件csproj<ItemGroup>里请添加以下 PackageReference:

         

1 <PackageReference Include="Microsoft.NETCore.Targets" Version="3.0.0" PrivateAssets="all" />

 参考:

           https://blog.csdn.net/hatmen2/article/details/104643183

原文地址:https://www.cnblogs.com/wsprince/p/14848652.html