カスタマイズ可能な Team Foundation のビルド ターゲット
更新 : 2007 年 11 月
MSBuild のターゲットとは、MSBuild プロジェクトのビルド方法を定義するものです。Microsoft.TeamFoundation.Build.targets ファイルには、ターゲットの階層構造と一連の定義済みの MSBuild のタスクおよびターゲットが Team Foundation ビルド用に定義されており、すべての Team Foundation ビルドの種類で使用されます。ビルド定義には、TfsBuild.proj という名前のプロジェクト ファイルが含まれています。このプロジェクト ファイルは、1 つまたは複数のビルド定義と関連付けることができます。TfsBuild.proj では、Microsoft.TeamFoundation.Build.targets ファイルがインポートされ、さまざまなプロパティや項目グループの値が用意されています。TfsBuild.proj ファイルをカスタマイズして、階層構造内のいくつかの拡張ポイント ターゲットをオーバーライドできます。targets ファイルは、ビルド エージェントの <root>:\Program Files\MSBuild\Microsoft\VisualStudio\TeamBuild にあります。
重要 : |
---|
Microsoft.TeamFoundation.Build.targets ファイルは変更しないでください。 |
MSBuildのターゲットの詳細については、「MSBuild ターゲット」を参照してください。
タスクでカスタマイズできるターゲット
タスクはターゲット内に含まれます。タスクでは、ビルド プロセスの間に実行するコードを指定します。次の表は、機能拡張用に定義されているすべての Team Foundation ビルド ターゲットの一覧です。ビルド処理のどの時点でカスタム タスクを実行する必要があるかに応じて、これらのターゲットのいずれかにタスクを挿入します。
メモ : |
---|
他のターゲットはオーバーライドしないことをお勧めします。 |
ターゲット名 |
説明 |
---|---|
BeforeEndToEndIteration |
ビルド処理の最初にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。 |
AfterEndToEndIteration |
ビルド処理の最後にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。 |
BeforeInitializeWorkspace |
ワークスペースを初期化する前にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。 |
AfterInitializeWorkspace |
ワークスペースを初期化した後にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。 |
BuildNumberOverrideTarget |
ビルド番号または格納場所に関連するプロパティをカスタマイズする場合は、このターゲットにタスクを挿入します。作成するタスクでは、BuildNumber という出力プロパティを作成する必要があります。 |
BeforeClean |
クリーンを行う前に呼び出されます。クリーン前にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。 |
AfterClean |
クリーンが完了した後に呼び出されます。クリーン後にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。 |
BeforeGet |
ソース管理からソースが取得される前に呼び出されます。ソースの取得前にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。 |
AfterGet |
ソースが取得された後に呼び出されます。ソースの取得後にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。 |
BeforeLabel |
ソースにラベルが設定される前に呼び出されます。Label ターゲットの前にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。 |
AfterLabel |
ラベル設定が完了した後に呼び出されます。Label ターゲットの後にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。 |
BeforeCompile |
コンパイルの開始前に呼び出されます。コード ファイルがコンパイルされる前にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。 |
BeforeCompileConfiguration |
各構成をコンパイルする前にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。 |
BeforeCompileSolution |
各ソリューションをコンパイルする前にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。 |
AfterCompileSolution |
各ソリューションをコンパイルした後にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。 |
AfterCompileConfiguration |
各構成をコンパイルした後にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。 |
AfterCompile |
コンパイルが完了した後に呼び出されます。コード ファイルがコンパイルされた後にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。例については、「チュートリアル : Visual Studio セットアップ プロジェクトをビルドするためにチーム ビルドを構成する」を参照してください。 |
BeforeGetChangesetsAndUpdateWorkItems |
変更セットの関連付けと成功したビルドの作業項目の更新を行う前にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。 |
AfterGetChangesetsAndUpdateWorkItems |
変更セットの関連付けと成功したビルドの作業項目の更新を行った後にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。 |
BeforeTest |
テストの実行前に呼び出されます。Test ターゲットの前にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。 |
BeforeTestConfiguration |
各構成をテストする前にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。 |
AfterTestConfiguration |
各構成をテストした後にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。 |
AfterTest |
テストが完了した後に呼び出されます。Test ターゲットの後にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。 |
BeforeDropBuild |
ビルドのバイナリ、ビルドのログ ファイル、およびテスト結果をリリース サーバーのビルド ドロップ ディレクトリに保存する前に呼び出されます。ビルドされたファイルがドロップ ディレクトリに保存される前にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。 |
AfterDropBuild |
ビルドのバイナリ、ビルドのログ ファイル、およびテスト結果をリリース サーバーにドロップした後に呼び出されます。ビルドされたファイルがドロップ ディレクトリに保存された後にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。 |
BeforeCreateWorkItem |
作業項目を作成する前にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。 |
AfterCreateWorkItem |
作業項目を作成した後にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。 |
BeforeOnBuildBreak |
ビルド ブレークの結果として作業項目を作成する前に呼び出されます。BuildBreak ターゲットの前にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。 |
AfterOnBuildBreak |
ビルド ブレークの結果として作業項目が作成された後に呼び出されます。BuildBreak ターゲットの後にカスタム タスクを実行する場合は、このターゲットにタスクを挿入します。 |
GenerateDocumentation |
これは空のターゲットです。ビルド処理中にドキュメントを自動的に生成する場合は、このターゲットにタスクを挿入します。 |
カスタム タスク実行のためのターゲットのオーバーライド
作成するタスク コードはターゲットと組み合わせて使用する必要があります。また、TfsBuild.proj ファイルでソース管理パスを指定するか、ビルド コンピュータ自体にバイナリを備えることにより、ビルドのバイナリをビルド コンピュータで使用できるようにする必要があります。さらに、MSBuild の UsingTask 要素を使用してカスタム タスクを宣言することにより、カスタム タスクを TfsBuild.proj ファイルで登録する必要があります。詳細については、「UsingTask 要素 (MSBuild)」を参照してください。最後に、カスタム タスクを含む DLL をビルド コンピュータに配置します。
重要 : |
---|
カスタマイズした TfsBuild.proj ファイルに関連付けられているすべてのビルド定義は、変更の影響を受けます。 |
カスタム タスクの実装全体の例については、「チュートリアル : カスタム タスクを使って Team Foundation ビルドをカスタマイズする」を参照してください。
ターゲットの実行順序
ターゲットの実行順序は、CleanCompilationOutputOnly プロパティの値に依存します。CleanCompilationOutputOnly が true の場合、clean ターゲット (BeforeClean、CoreClean、および AfterClean) は、get ターゲットと label ターゲット (BeforeGet、CoreGet、AfterGet、BeforeLabel、CoreLabel、および AfterLabel) の実行後に実行されます。CleanCompilationOutputOnly プロパティが false の場合、clean ターゲットは、get ターゲットと label ターゲットの実行前に実行されます。CleanCompilationOutputOnly が true の場合は、CoreClean ターゲットの実行時に、ソース ディレクトリから中間アセンブリのみが削除されます。このプロパティを false に設定すると、CoreClean ターゲットの実行時に、ソース ディレクトリ全体が削除されます。
CleanCompilationOutputOnly が true の場合と false の場合のターゲットの実行順序を、次の表に示します。オーバーライド可能なターゲットは明示されています。
CleanCompilationOutputOnly = true |
CleanCompilationOutputOnly = false |
---|---|
|
|
CoreCompile ターゲットの実行中にエラーが発生した場合、ターゲットは次の順序で実行されます。オーバーライド可能なターゲットは明示されています。
SetBuildBreakProperties
BeforeOnBuildBreak (オーバーライド可能)
GetChangesetsOnBuildBreak
BeforeDropBuild (オーバーライド可能)
CoreDropBuild
AfterDropBuild (オーバーライド可能)
BeforeCreateWorkItem (オーバーライド可能)
CoreCreateWorkItem
AfterCreateWorkItem (オーバーライド可能)
CoreOnBuildBreak
AfterOnBuildBreak (オーバーライド可能)
参照
処理手順
概念
Team Foundation ビルドの構成ファイルについて