TFS でビルド時にアプリケーションのバージョン番号に日付とビルド回数を設定する

したいこと

  • MSBuild でバージョン番号を付与したい

  • 今回設定したいバージョン番号

    • ApplicationVersion=1.0.20170926.1
1  0  20170926  1
-  -  -         -
|  |  |         |
|  |  |         `-- その日にビルドした回数(翌日にリセット)
|  |  `------------ ビルドした日付
|  `--------------- とりあえず固定
`------------------ とりあえず固定

TFS で使用できる変数について

$date=$(Get-Date -Format 'yyyy-MM-dd');

Write-Host "##vso[task.setvariable variable=date]$date"
  • この PowerShell をタスクの一つにして、起動すれば、$(date) でビルド時に使用可能

その日のビルドした回数はどうやって取得するか

    $buildNumber = $env:BUILD_BUILDNUMBER
    if ($buildNumber -eq $null)
    {
        $buildIncrementalNumber = 0
    }
    else
    {
        $splitted = $buildNumber.Split('.')
        $buildIncrementalNumber = $splitted[$splitted.Length - 1]
    }
  • $(Build.BuildNumber). で分割した2つ目から取得できそう

  • じゃ $(Build.BuildNumber) の1つ目が何か出力して確認してみる

20170926.1 
  • 自分が欲しい値そのままではないか。。。

まとめ

というわけで、今はこの設定でビルドしてる

/p:ApplicationVersion=1.0.$(Build.BuildNumber)