ビルド プロセスでスクリプトを実行する

Team Foundation ビルド (TFBuild) の既定のテンプレートには、アプリをビルドおよびテストするほとんどのチームに必要な基本機能が用意されています。 そうは言っても、ほとんどの場合、ソフトウェア プロジェクトは同じものが 1 つとして存在しません。したがって、チームは独自のビジネス ロジックを追加する必要があります。 カスタム ビルド プロセスの作成および管理は、複雑でコストが高くなる場合があります。 システムがコードをコンパイルまたはテストする前または後に、PowerShell スクリプトまたはバッチ (.bat) ファイルを実行するだけであれば、カスタム ビルド プロセスを使う必要はありません。

たとえば、コンパイルの前に、アセンブリ ファイルのバージョンを設定します。 または、コンパイルの後に、ステージング場所にドロップされたビルド出力を制御します。

ビルド プロセスでスクリプトを実行する

既定のテンプレートに対するスクリプト パラメーター

既定のテンプレートを使用して、PowerShell とバッチ (.bat) スクリプトを、コードをコンパイルする前と後、およびテストを実行する前と後に実行できます。

ビルド プロセスがスクリプトを実行するには、事前にスクリプトがアップロードされている必要があります。

スクリプトをアップロードしたら、ビルド プロセス パラメーターの適切な場所から参照します。 必要に応じて、スクリプトに引数を指定することもできます。

ビルド前の例: アセンブリのバージョン管理

MSBuild でコードをコンパイルする前に実行するタスクは多数ありますが、その中でも最も一般的なタスクの 1 つが、バージョンをアセンブリに適用するタスクである可能性があります。

ApplyVersionToAssemblies.ps1

ビルド後の例: バイナリのステージングの準備

[出力場所]AsConfigured に設定すると、どのバイナリをドロップするかの制御が TFBuild から自身に移ります。 この場合、TFBuild はバイナリをコンパイルしてソース ディレクトリに残し、基本的には Visual Studio を使用して開発用ローカル コンピューター上でコンパイルするのと同じように整理します。 次のスクリプトは、一般的な場所から一般的なバイナリ型の一部を収集し、フォルダーにコピーします。TFBuild はそのフォルダーからバイナリ型をコピーして、ステージング場所にドロップします。

GatherItemsForDrop.ps1

Q & A

Q: アクセス許可がないため、システムによってブロックされてしまいました。アクセス許可を得るにはどうすればよいですか。

A: Team Foundation Server のアクセス許可の参照

Q: どの環境変数をスクリプトで使用できますか。

A: TF_BUILD 環境変数からデータを取得する

Q: スクリプトの開発に関する情報はどこで入手できますか。

A: Curated answer: Run scripts in your Team Foundation Build process (Team Foundation ビルド プロセスでスクリプトを実行する)

Q: バージョン管理コマンドを実行できますか。

A: はい。 ファイルをチェックアウトおよびチェックインする方法の例を次に示します。

& ($env:VS120COMNTOOLS + "..\..\common7\ide\tf.exe") checkout $file

& ($env:VS120COMNTOOLS + "..\..\common7\ide\tf.exe") checkin $file /comment:" Checked in by build process script. ***NO_CI***" /noprompt

Q: どこでスクリプトを入手できますか。

TFS ビルド拡張機能のコミュニティ

Q: スクリプトで十分なコントロールができません。どうしたらいいのでしょうか。

ビルド プロセス テンプレートのカスタマイズ