You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于.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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 20:26:16