修复错误NU1605的正确方法是什么:检测到包降级 - log4net

时间:2017-12-08 10:09:22

标签: .net-core

您执行以下操作:

dotnet new console
dotnet add-package log4net --version 2.0.8
dotnet publish -r win10-x64

然后你得到:

error NU1605: Detected package downgrade: System.Runtime.InteropServices from 4.3.0 to 4.1.0.

您可以修复此问题,将以下内容添加到PropertyGroup

下的csproj中
<NoWarn>$(NoWarn);NU1605</NoWarn>

但我想了解解决问题的正确方法。

2 个答案:

答案 0 :(得分:19)

不幸的是,除了包所有者之外没有其他选择来升级他们的引用或者你在csproj中添加了clausule。有关详细信息,请参阅此GitHub问题:https://github.com/dotnet/core/issues/907

答案 1 :(得分:15)

根据Microsoft,可以通过在csproj中添加以下内容来解决此问题。

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

https://docs.microsoft.com/en-us/nuget/reference/errors-and-warnings/nu1605#issue-1

“。NET Core 1.0和1.1附带的某些程序包组合在.NET Core 3.0或更高版本的项目中一起引用并指定了RuntimeIdentifier时,它们彼此不兼容。有问题的程序包通常以系统或Microsoft,并且版本号在4.0.0和4.3.1之间。在这种情况下,降级消息将在依赖关系链中具有一个从运行时开始的包。”