2017-01-20 12 views
0

ファイルバージョンに注入コミットIDがどのようにあるのか知っていますか?すべてのアセンブリが2.0.6565.0のようなバージョンを持っていますので、6565はTFSのC6565コミットIDに関連していますか?TFS 2015ビルドvNext更新コミットID付きファイルバージョン

パワーシェルスクリプトが必要です。

+0

はhttp://stackoverflow.com/questions/41763224/tfs-2015-the-var-sourcelocation-variable-is-notに似て、この質問です利用可能なゲートチェックインですか? –

+0

@Cece - MSFT、コミット/チェンジセットIDでdllを更新することに関するこの質問。なぜ落選したのですか?あなたは何が間違っているのか説明できますか? – Alezis

+0

私はあなたのケースを投票していませんでした。 –

答えて

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

+0

このスクリプトは、ファイルと製品のバージョンではなく製品のバージョンのみを変更するように変更できますか? –

+0

「製品バージョン」とはどういう意味ですか?このスクリプトはアセンブリのバージョンとアセンブリのファイルバージョンを更新できます。それは 'AssemblyVersion'と 'AssemblyFileVersion'属性をヒットします。正規表現を変更することで、ロジックを自由に変更することができます。ファイルバージョンのみが必要な場合は、 "FileVersion \(" [(0-9)+)\。([0-9] +)。+ "" " – Alezis

0

あなたの質問が別の投稿TFS 2015. the $(var.SourceLocation) variable is not available at gated-check inに似ている場合、ゲット・チェックイン中にチェックインしていないチェンジセットIDを取得したい場合は、単一のビルドでは不可能です。

あなたがゲーテッドチェックを使用しない場合は、あなたがのAssemblyVersionを設定するには、PowerShellスクリプトで$Env:BUILD_SOURCEVERSIONを使用することができます。ここでは、すでにあなたがそれを参照することができ、以下のウェブサイトではスクリプトです:

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

+0

もう一度、これは異なった質問です。あなたのポストの第二部分は面白そうです。 – Alezis

関連する問題