【问题标题】:How to correctly specify version range for dependency..?如何正确指定依赖的版本范围..?
【发布时间】:2020-03-05 08:50:52
【问题描述】:

我正在创建一个 SDK 并使用 Newtonsoft.Json。我想允许任何版本的 11 和任何版本的 12,所以我这样设置我的包 ref:

<PackageReference Include="Newtonsoft.Json" Version="[11,13)" />

但是,当我尝试将我的 SDK 安装到另一个现有解决方案中时,安装失败并出现以下错误:

NU1603:MySampleSdk 0.0.1 依赖于 Newtonsoft.Json (>= 11.0.0 &&

11.0.1 不是在 &gt;= 11.0.0 &amp;&amp; &lt; 13.0.0 中吗?

我在这里错过了什么?

【问题讨论】:

  • 旁注:版本不应该是[11,12][11,13)吗?
  • 哦,是的。你是对的......我会更新这个问题。

标签: c# dependencies nuget nuget-package


【解决方案1】:

如果您仔细阅读 NuGet 消息,它只是告诉您“嘿,仅供参考,请求了版本 X,但它不存在,所以我改用版本 Y”。

如果您查看the docs for NU1603,您会注意到这是一个警告,而不是错误。如果您的构建/恢复失败,则意味着您的项目已选择将警告视为错误。

因此,从使用项目的项目的角度来看,可以通过在警告中不询问 NuGet 错误来解决此问题。或者,您可以使用 &lt;NoWarn&gt;$(NoWarn);NU1603&lt;/NoWarn&gt; 忽略此警告的所有实例。

从包作者的角度来看,如果您确保最低版本始终是存在的版本,那么您会对您的用户更加友善。 Newtonsoft.Json 11.0.0 不存在,所以改为最低版本 11.0.1。

【讨论】:

  • 谢谢。另外 +1 表示“如果您确保最低版本始终是存在的版本,您会更善待您的用户”:-)
猜你喜欢
  • 2015-09-09
  • 1970-01-01
  • 2020-10-21
  • 2022-11-10
  • 2019-09-29
  • 1970-01-01
  • 2023-03-26
  • 2016-04-17
  • 1970-01-01
相关资源
最近更新 更多