0

在 TFS 2015 提供的新构建系统中,您将如何完成增加程序集版本并将其检入源代码控制的任务?

我希望在以 AssemblyInfo 文件编写的源代码管理中始终提供当前版本。

4

1 回答 1

0

下面的 PowerShell 脚本(引自此博客)修改 TF_BUILD_SOURCESDIRECTORY 目录中 AssemblyInfo.cs 文件中的 AssemblyVersion 和 AssemblyFileVersion 值。

不要自己测试它,您可以尝试添加一个以托管 AssemblyInfo.cs 的服务器路径为目标的变量,并用它替换 TF_BUILD_SOURCESDIRECTORY。

Param(
  [string]$pathToSearch = $env:TF_BUILD_SOURCESDIRECTORY,
  [string]$buildNumber = $env:TF_BUILD_BUILDNUMBER,
  [string]$searchFilter = "AssemblyInfo.*",
  [regex]$pattern = "\d+\.\d+\.\d+\.\d+"
)
 
try
{
    if ($buildNumber -match $pattern -ne $true) {
        Write-Host "Could not extract a version from [$buildNumber] using pattern [$pattern]"
        exit 1
    } else {
        $extractedBuildNumber = $Matches[0]
        Write-Host "Using version $extractedBuildNumber"
 
        gci -Path $pathToSearch -Filter $searchFilter -Recurse | %{
            Write-Host "  -> Changing $($_.FullName)"
         
            # remove the read-only bit on the file
            sp $_.FullName IsReadOnly $false
 
            # run the regex replace
            (gc $_.FullName) | % { $_ -replace $pattern, $extractedBuildNumber } | sc $_.FullName
        }
 
        Write-Host "Done!"
    }
}
catch {
    Write-Host $_
    exit 1
}

于 2015-10-23T07:51:42.743 回答