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

.net core 修复错误NU1605的正确方法是什么:检测到的包降级-log4net,.net-core,.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

你可以这样做:

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>
$(NoWarn);NU1605

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

不幸的是,除了软件包所有者升级其引用或您在csproj中添加条款之外,没有其他选择。有关更多信息,请参阅此GitHub问题:

根据Microsoft的说法,这可以通过将以下内容添加到您的csproj中来解决


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

这个问题也抑制了警告。当我开始在Microsoft.Primitives.Extensions中看到这个问题时,我只需要先手动更新现有版本。效果非常好!这应该是最好的答案!是的,这是最好的答案。它强制运行时为特定版本,并绕过Nuget版本解析算法,这是警告的罪魁祸首。