我在 Visual Studio Online 中使用新的可编写脚本的构建功能(不是 XAML 构建定义),并且我试图让构建版本号包括使用内部版本号格式的目标存储库的最新 Git 提交 ID。
我正在使用以下内部版本号格式:
$(MajorVersion).$(MinorVersion).$(BuildId).$(SourceVersion)
这会导致生成的版本号为1.0.1234.
- 即 SourceVersion 值为空白,这会在排队构建时导致 VSO 中的错误。我还尝试通过在变量前面Build.
加上相同的结果来限定变量。为了测试,我已将内部版本号更改为以下格式:
$(MajorVersion).$(MinorVersion).$(BuildId).$(SourceBranch)
这正确地导致了一个值1.0.1234.refs_heads_master
我一直在使用预定义变量引用,并且 Build.SourceVersion 被列为全局变量。
我做错了什么,我是否遇到了错误,或者这是设计使然,并且在构建排队时不可用?如果这是设计使然,有没有办法在内部版本号格式中自动包含简短的 Git 提交 ID?
这是我没有明确指定 Git CommitId 时看到的错误:
400:内部版本号格式字符串 $(MajorVersion).$(MinorVersion).$(BuildId).$(SourceVersion) 生成了内部版本号 0.1.1。其中包含无效字符、太长或以“.”结尾。内部版本号的最大长度为 255 个字符。不允许使用的字符包括 '"'、'/'、':'、'<'、'>'、'\'、'|'、'?'、'@' 和 '*'。