次の方法で共有


カスタマイズ可能な 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 にあります。

Aa337604.alert_caution(ja-jp,VS.90).gif重要 :

Microsoft.TeamFoundation.Build.targets ファイルは変更しないでください。

MSBuildのターゲットの詳細については、「MSBuild ターゲット」を参照してください。

タスクでカスタマイズできるターゲット

タスクはターゲット内に含まれます。タスクでは、ビルド プロセスの間に実行するコードを指定します。次の表は、機能拡張用に定義されているすべての Team Foundation ビルド ターゲットの一覧です。ビルド処理のどの時点でカスタム タスクを実行する必要があるかに応じて、これらのターゲットのいずれかにタスクを挿入します。

Aa337604.alert_note(ja-jp,VS.90).gifメモ :

他のターゲットはオーバーライドしないことをお勧めします。

ターゲット名

説明

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 をビルド コンピュータに配置します。

Aa337604.alert_caution(ja-jp,VS.90).gif重要 :

カスタマイズした TfsBuild.proj ファイルに関連付けられているすべてのビルド定義は、変更の影響を受けます。

カスタム タスクの実装全体の例については、「チュートリアル : カスタム タスクを使って Team Foundation ビルドをカスタマイズする」を参照してください。

ターゲットの実行順序

ターゲットの実行順序は、CleanCompilationOutputOnly プロパティの値に依存します。CleanCompilationOutputOnly が true の場合、clean ターゲット (BeforeCleanCoreClean、および AfterClean) は、get ターゲットと label ターゲット (BeforeGetCoreGetAfterGetBeforeLabelCoreLabel、および AfterLabel) の実行後に実行されます。CleanCompilationOutputOnly プロパティが false の場合、clean ターゲットは、get ターゲットと label ターゲットの実行前に実行されます。CleanCompilationOutputOnly が true の場合は、CoreClean ターゲットの実行時に、ソース ディレクトリから中間アセンブリのみが削除されます。このプロパティを false に設定すると、CoreClean ターゲットの実行時に、ソース ディレクトリ全体が削除されます。

CleanCompilationOutputOnly が true の場合と false の場合のターゲットの実行順序を、次の表に示します。オーバーライド可能なターゲットは明示されています。

CleanCompilationOutputOnly = true

CleanCompilationOutputOnly = false

  1. InitializeBuildProperties

  2. BeforeEndToEndIteration (オーバーライド可能)

  3. BuildNumberOverrideTarget (オーバーライド可能)

  4. InitializeEndToEndIteration

  5. BeforeInitializeWorkspace (オーバーライド可能)

  6. CoreInitializeWorkspace

  7. AfterinitializeWorkspace (オーバーライド可能)

  8. InitializeBuild

  9. BeforeGet (オーバーライド可能)

  10. CoreGet

  11. AfterGet (オーバーライド可能)

  12. BeforeLabel (オーバーライド可能)

  13. CoreLabel

  14. AfterLabel (オーバーライド可能)

  15. BeforeClean (オーバーライド可能)

  16. CoreCleanCompilationOutput

  17. AfterClean (オーバーライド可能)

  18. BeforeCompile (オーバーライド可能)

  19. CoreCompile (構成とプラットフォームの各組み合わせに対して実行されます。)

  20. BeforeCompileConfiguration (オーバーライド可能)

  21. CoreCompileConfiguration (ビルドする各ソリューションに対して実行されます。)

  22. BeforeCompileSolution (オーバーライド可能)

  23. CoreCompileSolution

  24. AfterCompileSolution (オーバーライド可能)

  25. AfterCompileConfiguration (オーバーライド可能)

  26. AfterCompile (オーバーライド可能)

  27. BeforeGetChangesetsAndUpdateWorkItems (オーバーライド可能)

  28. CoreGetChangeSetsAndUpdateWorkItems

  29. AfterGetChangesetsAndUpdateWorkItems (オーバーライド可能)

  30. BeforeTest (オーバーライド可能)

  31. CoreTest (構成とプラットフォームの各組み合わせに対して実行されます。)

  32. BeforeTestConfiguration (オーバーライド可能)

  33. CoreTestConfiguration

  34. AfterTestConfiguration (オーバーライド可能)

  35. AfterTest (オーバーライド可能)

  36. GenerateDocumentation (オーバーライド可能)

  37. PackageBinaries (オーバーライド可能)

  38. BeforeDropBuild (オーバーライド可能)

  39. CoreDropBuild

  40. AfterDropBuild (オーバーライド可能)

  41. AfterEndToEndIteration (オーバーライド可能)

  1. InitializeBuildProperties

  2. BeforeEndToEndIteration (オーバーライド可能)

  3. BuildNumberOverrideTarget (オーバーライド可能)

  4. InitializeEndToEndIteration

  5. BeforeInitializeWorkspace (オーバーライド可能)

  6. CoreInitializeWorkspace

  7. AfterInitializeWorkspace (オーバーライド可能)

  8. BeforeClean (オーバーライド可能)

  9. CoreClean

  10. AfterClean (オーバーライド可能)

  11. InitializeBuild

  12. BeforeGet (オーバーライド可能)

  13. CoreGet

  14. AfterGet (オーバーライド可能)

  15. BeforeLabel (オーバーライド可能)

  16. CoreLabel

  17. AfterLabel (オーバーライド可能)

  18. BeforeCompile (オーバーライド可能)

  19. CoreCompile (構成とプラットフォームの各組み合わせに対して実行されます。)

  20. BeforeCompileConfiguration (オーバーライド可能)

  21. CoreCompileConfiguration (ビルドする各ソリューションに対して実行されます。)

  22. BeforeCompileSolution (オーバーライド可能)

  23. CoreCompileSolution

  24. AfterCompileSolution (オーバーライド可能)

  25. AfterCompileConfiguration (オーバーライド可能)

  26. AfterCompile (オーバーライド可能)

  27. BeforeGetChangesetsAndUpdateWorkItems (オーバーライド可能)

  28. CoreGetChangeSetsAndUpdateWorkItems

  29. AfterGetChangesetsAndUpdateWorkItems (オーバーライド可能)

  30. BeforeTest (オーバーライド可能)

  31. CoreTest (構成とプラットフォームの各組み合わせに対して実行されます。)

  32. BeforeTestConfiguration (オーバーライド可能)

  33. CoreTestConfiguration

  34. AfterTestConfiguration (オーバーライド可能)

  35. AfterTest (オーバーライド可能)

  36. GenerateDocumentation (オーバーライド可能)

  37. PackageBinaries (オーバーライド可能)

  38. BeforeDropBuild (オーバーライド可能)

  39. CoreDropBuild

  40. AfterDropBuild (オーバーライド可能)

  41. AfterEndToEndIteration (オーバーライド可能)

CoreCompile ターゲットの実行中にエラーが発生した場合、ターゲットは次の順序で実行されます。オーバーライド可能なターゲットは明示されています。

  1. SetBuildBreakProperties

  2. BeforeOnBuildBreak (オーバーライド可能)

  3. GetChangesetsOnBuildBreak

  4. BeforeDropBuild (オーバーライド可能)

  5. CoreDropBuild

  6. AfterDropBuild (オーバーライド可能)

  7. BeforeCreateWorkItem (オーバーライド可能)

  8. CoreCreateWorkItem

  9. AfterCreateWorkItem (オーバーライド可能)

  10. CoreOnBuildBreak

  11. AfterOnBuildBreak (オーバーライド可能)

参照

処理手順

方法 : タスクを記述する

概念

Team Foundation ビルドの構成ファイルについて

カスタマイズ可能な Team Foundation のビルド プロパティ

Team Foundation ビルドのタスク