解决错误NU1605的正确方法是什么:检测到的软件包降级-Log4net



您按照以下操作:

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>

,但我想理解正确的方法。

根据Microsoft的说法,可以通过将以下内容添加到您的CSPROJ。

来解决。

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

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

"用.NET Core 1.0和1.1运送的包装组合在.NET Core 3.0或更高的项目中被引用在一起时,彼此不兼容,并指定了RuntimeTimeIdentifier。有问题的软件包通常始于System。或Microsoft。,并且版本号在4.0.0和4.3.1之间。在这种情况下,降级消息将从运行时开始。在依赖关系链中。"

不幸的是,除了软件包所有者升级其参考文献或您在csproj中添加clausule外,别无选择。请参阅此GitHub问题以获取更多信息:https://github.com/dotnet/core/issues/907

最新更新