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

Nuget 如何创建包含预发布的nuspec依赖项,nuget,semantic-versioning,Nuget,Semantic Versioning,一些背景: 我有4个带有依赖项的nuget包。它们都处于预发布模式,并且以自己的速度从alpha演变为“稳定”。我希望能够在依赖项定义中指定应该包括预发布版本,但是当“稳定”版本可用时,它应该更新为稳定版本 在中,版本控制规则定义了[和]以包括您指定的版本号,以及(和)以排除您指定的版本号 关于nuspec文件中版本影响的一些示例: <dependencies> <dependency id="MyComponent" version="1.2.0" />

一些背景:

我有4个带有依赖项的nuget包。它们都处于预发布模式,并且以自己的速度从alpha演变为“稳定”。我希望能够在依赖项定义中指定应该包括预发布版本,但是当“稳定”版本可用时,它应该更新为稳定版本

在中,版本控制规则定义了
[
]
以包括您指定的版本号,以及
以排除您指定的版本号

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

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

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


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


==>这将安装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.1.32767,您希望包括哪些版本?包括1.2.0-alpha,包括1.2.0,1.2.1包含的等应排除在1.1.xxx之外,其中1.1.xxx较低版本或1.1.32767的预发行版本?程序包X需要依赖于程序包Y版本1.2.0-alpha或更高版本。如果我将1.2.0放在依赖项中,则不会安装alpha。目前安装
1.2.0-alpha
的唯一方法是将
(1.1.32767
放在依赖项中。您的说明是正确的。我怀疑确实必须实现这一点
 <dependencies>
     <dependency id="MyComponent" version="[1.2.0,2)" />
 </dependencies>
 <dependencies>
     <dependency id="MyComponent" version="(1.1.32767" />
 </dependencies>