一些上下文:
我有4个依赖关系的nuget包。他们都处于预发行模式,它们以自己的速度从阿尔法演变为“稳定”。我想要能够在依赖关系定义中指定prereleases应该被包含,但是当“稳定”版本可用时,它应该更新到稳定版本。
在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-α)
目前我设定:
<dependencies> <dependency id="MyComponent" version="(1.1.32767" /> </dependencies>
但是我觉得这是一个非常丑陋的方式,它并没有真正反映现实。 (如果版本1.1.32767.1存在?)
我想知道如何指定您希望在最低版本中包含预发行版本?
有一件重要的事情要注意:
根据预发行版本,生产的包装本身也是预发行的。
有意义的是,默认情况下,在定义依赖项的版本范围时会忽略预发行版,因为它会更改正在生成的包的版本(不知道要选择哪个版本)。
理想情况下,在安装期间检查依赖关系的版本范围的算法会检查消费包是否为预发行版,然后包括或排除允许的版本范围内的预发行依赖关系。
我不知道这是否是现在的情况,但是看看你的问题我不认为是这样。您可能想要在http://nuget.codeplex.com上记录功能请求(或提交拉取请求?)