【问题标题】:What is the right way to fix error NU1605: Detected package downgrade - log4net修复错误 NU1605 的正确方法是什么:检测到包降级 - log4net
【发布时间】:2020-04-30 04:32:56
【问题描述】:

你可以这样做:

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.Primitives.Extensions 时,我只需要先手动更新现有版本。

标签: .net-core


【解决方案1】:

不幸的是,除了包所有者升级他们的引用或您在 csproj.xml 中添加分句之外,没有其他选择。请参阅此 GitHub 问题以获取更多信息:https://github.com/dotnet/core/issues/907

【讨论】:

【解决方案2】:

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

&lt;PackageReference Include="Microsoft.NETCore.Targets" Version="3.0.0" PrivateAssets="all" /&gt;

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。有问题的包通常以System. 或 Microsoft.,并且版本号介于 4.0.0 和 4.3.1 之间。在这种情况下,降级消息将在依赖链中包含一个以 runtime. 开头的包。”

【讨论】:

  • 像魅力一样工作!
  • TSBTBA:这应该是最好的答案!
  • 是的,这是最好的答案。它强制运行时为特定版本,并绕过 Nuget 版本解析算法,这是警告的罪魁祸首。
  • 它是否完全违背了 .NET Standard 2.0 库的目的,即必须强制使用特定的框架?
猜你喜欢
  • 2018-10-21
  • 2020-04-17
  • 2021-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多