如何创建包含预发布的nuspec依赖项

时间:2013-02-06 15:36:31

标签: nuget semantic-versioning

某些背景信息:

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

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

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

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

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

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

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

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

==&GT;这将安装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会怎么样?)

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

1 个答案:

答案 0 :(得分:14)

有一点需要注意:

根据预发布版本,生产的包装本身也是预发行版。

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

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

我不确定目前情况是否如此,但看看你的问题,我认为不是。您可能想在http://nuget.codeplex.com

上记录功能请求(或提交拉取请求?)