如何基于.csproj版本属性在Azure Pipelines YAML中设置构建编号格式
在Azure Pipelines YAML中读取.csproj版本属性设置构建编号
要在YAML版流水线中实现从.csproj的MajorVersionOfNuget、MinorVersionOfNuget、PatchVersionOfNuget属性提取值并设置构建编号,可按以下步骤操作:
1. 读取.csproj版本属性并更新构建编号
添加PowerShell步骤读取项目XML文件中的版本属性,直接生成并更新流水线的构建编号:
steps: - powershell: | # 读取目标.csproj文件内容 [xml]$csproj = Get-Content "$(Build.SourcesDirectory)/YourProject.csproj" # 提取预定义的版本属性值 $major = $csproj.Project.PropertyGroup.MajorVersionOfNuget $minor = $csproj.Project.PropertyGroup.MinorVersionOfNuget $patch = $csproj.Project.PropertyGroup.PatchVersionOfNuget # 自定义构建编号格式(示例:主版本.次版本.修订版本.流水线ID) $buildNumber = "$major.$minor.$patch.$(Build.BuildId)" # 推送更新至流水线构建编号 Write-Host "##vso[build.updatebuildnumber]$buildNumber" displayName: '从.csproj读取版本并设置构建编号'
2. 关键注意事项
- 替换
YourProject.csproj为实际项目文件路径(若项目在子目录中,需补充完整相对路径) - 构建编号格式可按需调整:比如不需要流水线ID的话,直接用
"$major.$minor.$patch";如需预览版标识,可改为"$major.$minor.$patch-preview.$(Build.BuildId)" - 若后续步骤需要单独使用各版本段变量,可在PowerShell中添加以下命令将其设为流水线全局变量:
Write-Host "##vso[task.setvariable variable=NugetMajor]$major" Write-Host "##vso[task.setvariable variable=NugetMinor]$minor" Write-Host "##vso[task.setvariable variable=NugetPatch]$patch"
内容的提问来源于stack exchange,提问作者Jakob Busk Sørensen
相关产品推荐
相关产品推荐

