我正在使用 Nuget 4.3.0.4406
打包一个版本为5.2.29.181212.8244-RC
的程序集,但我得到了
2018-12-12T08:44:02.8053309Z ## [3] nuget 命令失败,退出 code(1)和错误('5.2.29.181212.8244-RC'不是有效的版本字符串.参数名称:value)
版本控制不符合 semver,但 Nuget 提出了限制,而且不清楚哪个......?这是否意味着 Nuget 不仅支持 SemVer 而且强制执行它?我找到了这个,但我不确定它们对SpecialVersion
的含义是什么?
基本上我只想要x.y.z.[date+buildid](-rc)
,其中x.y.z
与规范版本绑定,因此不能省略(我们不拥有该版本)。
更新
9.9.9.1812129999-rc
有效,但9.9.9.18121299999-rc
和9.9.9.9812129999-rc
没有,这是指定的? (这是数字大小限制而不是字符串长度)
1 回答
摘自 Microsoft Docs 上的NuGet 包版本控制参考:
旧客户端不支持 SemVer v2.0.0 的某些语义。如果以下任一陈述为真,NuGet 认为包版本是 SemVer v2.0.0 特定的:
pre-release 标签是 dot-separated,例如 1.0.0-alpha.1
该版本有 build-metadata,例如 1.0.0 githash
对于 nuget.org,如果以下任一语句为真,则将包定义为 SemVer v2.0.0 包:
软件包自身的版本符合 SemVer v2.0.0,但不符合 SemVer v1.0.0,如上所述。
任何软件包的依赖性版本范围都具有符合 SemVer v2.0.0 但不符合 SemVer v1.0.0 的最小或最大版本,如上所述;例如,[1.0.0-alpha.1,)。
当然,您可以在semver.org找到 Semmantic Versioning Specification。我想你对spec-item10特别感兴趣:
你的版本会像
x.y.z(-rc)+[date+buildid]