Visual Studio Online(XAMLビルド定義ではありません)で新しいスクリプト作成機能を使用しています。ビルドバージョン番号を取得しようとしています。 Build Number Formatを使用してターゲット・リポジトリーを作成します。VS.SoでBuild.SourceVersionが空です。vNext Build
私は次のビルド番号の形式を使用しています:1.0.1234.
の生成バージョン番号になり
$(MajorVersion).$(MinorVersion).$(BuildId).$(SourceVersion)
- すなわちSourceVersion値は、ビルドをキューイングする際VSOにエラーが発生した、空白です。私は同じ結果を持つBuild.
という接頭辞を付けて変数の修飾を試みました。テストするために、私は次の形式にビルド番号が変更されました:
$(MajorVersion).$(MinorVersion).$(BuildId).$(SourceBranch)
これは正しく私がPredefined Variables参照を使用しているとBuild.SourceVersionがグローバル変数としてリストされている1.0.1234.refs_heads_master
の値になり。
私は何か間違ったことをしていますか?これはバグが発生したか、これは設計上のもので、ビルドがキューに入れられた時点で利用できませんでしたか?これが仕様であれば、短いGit Commit IDをBuild Number Formatに自動的に含める方法はありますか?
これは私が明示的にGit CommitIdを指定していないときに私は見誤りである:
400:ビルド番号形式文字列 $(MajorVersion)$(MinorVersion)$(BuildId)$(SourceVersion) ビルド番号0.1.1を生成しました。無効な文字が含まれていますが、長すぎるか、「。」で終わっています。ビルド番号の最大長は255 文字です。 '<'、 '>'、 '\'、 '|'、 '?'、 '@'、 '*'のような文字は使用できません。
は、私が何を達成することができます'$(MajorVersion)。$(MinorVersion)。$(Build.BuildId)。$(Build.SourceVersion)'で説明されています。 VSOとTFS 2015の両方をオンデマンドで検証しました。出力は '1.0.20.41f2983578f720695227a7a8a41ed3d7437efc30'のようになります。それはあなたの側でその奇妙な行動を引き起こすタイプミスではないと確信していますか? –
@YanSklyarenko、私は常に$(MajorVersion)を使用する場合、 "ビルド番号形式(型InvalidMacroInBuildNumberException)で指定されたマクロ$(Build.SourceVersion)を展開できません。" $(MinorVersion)。$(Build.BuildId)ビルド番号の形式を定義する$(Build.SourceVersion)。さらに、SourceVersion変数は、このビルドに含まれている最新のバージョンコントロールの変更です。 CommitIdまたはチェンジセット番号(たとえばCS1234)。「41f2983578f720695227a7a8a41ed3d7437efc30」のようにはなりません。私は何か重要なことを忘れましたか –
@Vicky、hmm、それは別のことだと思います。例外( 'InvalidMacroInBuildNumberException')はビルド番号形式が無効であることを意味します。私は、メジャーを期待しています。マイナー。ビルド。すべてをIDやハッシュではなく数字に見直します。 $(Build.SourceVersion)のマクロ部分は機能しますが、ビルド番号には使用できません。他のコメント - GitのコミットIDは長いハッシュ、 'CS1234'はTFVCチェンジセットのフォーマットです。 –