26

一些上下文:

我有 4 个具有依赖项的 nuget 包。它们都处于预发布模式,并且按照自己的节奏从 alpha 发展到“稳定”。我希望能够在依赖定义中指定应该包含预发布,但是当“稳定”版本可用时,它应该更新到稳定版本。

NuGet Docs中,版本控制规则定义[]包含您指定的版本号()排除您指定的版本号。

有关 nuspec 文件中版本影响的一些示例:

 <dependencies>
     <dependency id="MyComponent" version="1.2.0" />
 </dependencies>

==> 这将安装 MyComponent 1.2.0 或更高版本。(不包括预发布 1.2.0-alpha)

 <dependencies>
     <dependency id="MyComponent" version="[1.2.0" />
 </dependencies>

==> 这将安装 MyComponent 1.2.0 或更高版本。(不包括预发布 1.2.0-alpha)

 <dependencies>
     <dependency id="MyComponent" version="[1.2.0,2)" />
 </dependencies>

==> 这将安装 MyComponent 1.2.0 直到但不包括版本 2.0.0。(不包括预发布 1.2.0-alpha 但包括预发布 2.0.0-alpha)

目前我设置:

 <dependencies>
     <dependency id="MyComponent" version="(1.1.32767" />
 </dependencies>

但我觉得这是一种非常丑陋的方式,它并不能真正反映现实。(如果版本 1.1.32767.1 存在怎么办?)

我想知道如何指定您希望在最低版本中包含预发布版本?

4

1 回答 1

16

有一件重要的事情需要注意:

依赖于预发布使生成的包本身也是预发布。

默认情况下,在定义依赖项的版本范围时忽略预发布是有道理的,因为它会改变正在生成的包的版本(不知道要选择哪个版本)。

理想情况下,在安装过程中检查依赖的版本范围的算法会检查消费的包是否是预发布的,然后在允许的版本范围内包含或排除预发布的依赖。

我不确定目前是否是这种情况,但看看你的问题,我认为不是。您可能想在http://nuget.codeplex.com上记录功能请求(或提交拉取请求?)

于 2013-02-06T16:08:27.017 回答