TFS 2015使用提交ID构建vNext更新文件版本

时间:2017-01-20 13:03:32

标签: tfs azure-devops tfsbuild tfs2015

你知道如何将commit id注入文件版本,所以每个程序集都会像2.0.6565.0这样的版本,其中6565与TFS中的C6565提交ID有关吗?

看起来需要一些电源shell脚本。

2 个答案:

答案 0 :(得分:0)

如果您的问题类似于您的另一篇帖子TFS 2015. the $(var.SourceLocation) variable is not available at gated-check in,想要获取在门控签到期间未签入的变更集ID,那么在单个版本中就不可能。

如果您不使用gated check in,则可以在powershell脚本中使用$Env:BUILD_SOURCEVERSION来设置AssemblyVersion。这是以下网站上的一个脚本,你可以参考它:

https://github.com/wulfland/ScriptRepository/blob/master/TFSBuild/TFSBuild/AssemblyVersion/Set-AssemblyVersion/Set-AssemblyVersion.ps1

答案 1 :(得分:0)

最后,我根据this post创建了自己的PS脚本。 该想法在包含汇编信息的所有文件中更新版本

$CommitId = ([string]$env:BUILD_SOURCEVERSION) -replace "[^0-9]+", ""
$AllVersionFiles = Get-ChildItem $SourceDir AssemblyInfo.cs -recurse
$regexToFindVersion = "Version\(""([0-9]+)\.([0-9]+).+"""

foreach ($file in $AllVersionFiles) 
{
    Write-Host "Processing " $file.FullName

    (Get-Content $file.FullName) |
    %{$_ -replace $regexToFindVersion, ('Version("$1.$2.0.' + $CommitId + '"') } |
    Set-Content $file.FullName -Force
}

可以找到完整的脚本here

必须在构建项目之前放置脚本: BuildSteps