如何通过 PowerShell 使用 Azure DevOps 的内部版本号更新 AssemblyInfo.cs 中的 AssemblyVersion 号?

Y.Y*_*.Y. 5 powershell continuous-integration continuous-deployment azure-devops azure-pipelines

我想使用 Azure DevOps (VSTS) 的内部版本号更新我在 AssemblyInfo.cs 中的版本号。

有谁知道我如何通过 PowerShell 做到这一点?

Sha*_*zyk 7

最好的方法是使用程序集信息扩展,并$(Build.BuildNumber)在版本字段中使用变量。

但是如果你想使用你自己的 PowerShell 脚本,你可以使用这个脚本:

$buildNumber = "$env:Build_BuildNumber"
$pattern = '\[assembly: AssemblyVersion\("(.*)"\)\]'
$AssemblyFiles = Get-ChildItem . AssemblyInfo.cs -rec

foreach ($file in $AssemblyFiles)
{

(Get-Content $file.PSPath) | ForEach-Object{
    if($_ -match $pattern){
        '[assembly: AssemblyVersion("{0}")]' -f $buildNumber
    } else {
        # Output line as is
        $_
    }
} | Set-Content $file.PSPath

}
Run Code Online (Sandbox Code Playgroud)

  • 我通常推荐 GitVersion,所以“最好的方法”有点太固执己见了。 (3认同)