如何在Azure DevOps YAML表达式中校验字符串是否为版本号?
在Azure DevOps YAML中校验合法版本号并设置构建版本号
你原来的写法存在参数错误,Azure DevOps模板表达式中的tryparse函数已经封装了C#里Version.TryParse的out参数逻辑,无需手动处理,正确用法是指定目标解析类型为'Version'来判断字符串是否为合法版本号。
修正后的YAML代码
- ${{ if tryparse(variables['Build.SourceBranchName'], 'Version') }}: - name: myBuildNumber value: $[variables['Build.SourceBranchName']] - ${{ else }}: - name: myBuildNumber value: $[format('{0:yyyy\\.MM\\.dd}', pipeline.startTime)]
关键说明
tryparse(variables['Build.SourceBranchName'], 'Version'):该表达式会尝试将分支名称解析为C#的Version类型,解析成功返回true,失败返回false,完全替代了原生Version.TryParse的调用逻辑。- 日期格式转义:
format函数中需要用\\转义.,确保最终输出yyyy.MM.dd格式的日期字符串。 - 规范变量引用:使用
$[variables['Build.SourceBranchName']]是更严谨的变量引用方式,避免潜在的表达式解析歧义。
内容的提问来源于stack exchange,提问作者xtreampb
相关产品推荐
相关产品推荐

