【发布时间】:2017-08-12 04:19:39
【问题描述】:
nuget 允许预发布版本修饰符
例如,我正在开发版本 1.0.0,并且可以添加类似的预发布修改器
-beta-rc-beta2
但是,如果我尝试设置类似的东西
-nightly20170320191800
失败了
所以我的问题是这个预发布字符串的具体限制是什么
【问题讨论】:
标签: nuget versioning
nuget 允许预发布版本修饰符
例如,我正在开发版本 1.0.0,并且可以添加类似的预发布修改器
-beta-rc-beta2但是,如果我尝试设置类似的东西
-nightly20170320191800
失败了
所以我的问题是这个预发布字符串的具体限制是什么
【问题讨论】:
标签: nuget versioning
【讨论】:
我想通了:
我使用的是 nuget 3.3.0,它没有有意义的消息就死了 (Version string invalid)
nuget 3.5.0 死于 The special version part cannot exceed 20 characters.
此限制已被删除 (https://github.com/NuGet/Home/issues/2735)
现在我使用 nuget 4.0.0,它按预期工作。
所以正确答案是:
来自 SemVer 规范 2.0 (http://semver.org/)
预发布版本可以通过在补丁版本之后附加一个连字符和一系列点分隔标识符来表示。标识符必须仅包含 ASCII 字母数字和连字符 [0-9A-Za-z-]。标识符不得为空。数字标识符不得包含前导零。预发布版本的优先级低于相关的普通版本。预发布版本表明该版本不稳定,可能无法满足其相关正常版本所表示的预期兼容性要求。示例:1.0.0-alpha、1.0.0-alpha.1、1.0.0-0.3.7、1.0.0-x.7.z.92。
但是,一些过去的 nuget 版本(最高 3.5.0)增加了额外的长度限制。 4.0.0 版在这方面按照规范的定义工作。
【讨论】: