2017-01-10 3 views
0

を構築し、私は下のMSBuildの引数を使用してデスクトップアプリケーションのClickOnceのファイルを作成し、CIビルドでVisual Studioのビルドステップがあります:$は(ビルド・設定のClickOnceアプリケーションバージョンとMinimumRequiredVersion

/target:publish /p:ApplicationVersion=$(Year:yyyy).$(Month).$(DayOfMonth).$(Build.BuildId) /p:MinimumRequiredVersion=$(Year:yyyy).$(Month).$(DayOfMonth).$(Build.BuildId) /p:InstallUrl=$(InstallUrl) 

を.BuildId)と$(InstallUrl)変数は正しい値に置き換えられますが、$(Year:yyyy)、$(Month)および$(DayOfMonth)変数は置き換えられません。私は同じ変数を使用してビルド番号の形式を[全般]タブで設定していて、それらは正しく置き換えられます。 VSTSのビルドステップで日付ベースの変数を使用することはできませんか?

編集:$(Build.BuildNumber)を使用すると表示されますが、私はビルド番号の形式でビルド定義名を含めるのが好きですが、明らかにバージョンでは機能しません。

+0

Lucaのソリューションでこの問題を解決しますか? –

答えて

1

$(Year:yyyy)$(Month)$(DayOfMonth)は、他の場所では使用できないビルド番号の形式フィールドでのみ使用できるトークンです。

私はちょうどあなたのVisual Studioのビルドタスクの前に(インラインスクリプト付き)PowerShellのタスクで実行する次のスクリプトを活用し、自分でその場でこれらの変数を作成することをお勧めします:

$date = get-date 
write-host "##vso[task.setvariable variable=Year;]$(($date).year)" 
write-host "##vso[task.setvariable variable=Month;]$(($date).month)" 
write-host "##vso[task.setvariable variable=Day;]$(($date).day)" 

その後、あなたは可能性があり追加のMSBuild引数として現在使用しているトークンの代わりに$(Year)$(Month)および$(Day)を使用してください。

+0

これは完全に機能しました。私はこの小さなもののためにパワーシェルスクリプトを追加しなければならないというファンではありませんが、うまくいくでしょう。私はビルド番号の形式を変更し、それに対処するかもしれないと思う。 –

関連する問題