Nuget Semver - 允许的预发行字符是什么?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nuget Semver - 允许的预发行字符是什么?相关的知识,希望对你有一定的参考价值。

我正在尝试将semantiv版本化用于我的.Nuget包中的一个(.Net Core 2)该版本看起来像这个1.0.0-my_fancy_branch.123。

您可以猜到,我尝试将分支名称和当前BuildId设置为预发布标记。

不幸的是,dotnet build出现了这个错误:... is not a valid version string.

但为什么? dotnet push / nuget绝对精彩的文档没有列出任何禁用的字符。

我认为PIP是钝的......

答案

根据NuGet package versions的参考资料,NuGet使用从NuGet 4.3.0开始的Semantic Versioning 2.0.0。在早期版本中,仅支持SemVer 2.0.0的一个子集,但这仍然可以提示指定版本的问题所在。

Section 9(关于预发布版本)中,指定“标识符必须仅包含ASCII字母数字和连字符[0-9A-Za-z-]。”。因此,我猜你的案例中的问题是预发布版本中的下划线。

以上是关于Nuget Semver - 允许的预发行字符是什么?的主要内容,如果未能解决你的问题,请参考以下文章

npm 是不是支持 semver 中较新的预发布版本?

如何删除 nuget 包上的预发布指定?

可以在 VS 包管理器 UI 中显示预发布的 NuGet 包吗?

project.json 指定 NuGet 依赖项的确切版本

Java semver 正则表达式中的未封闭字符类

Azure Pipeline Nuget 包版本控制方案,如何获取“1.0.$(Rev:r)”