Team Foundation ビルドの構成ファイルについて
更新 : 2007 年 11 月
Team Foundation ビルドは MSBuild エンジンを使用します。Team Foundation ビルドの処理は、MSBuild プロジェクト ファイルのスキーマに従って記述された一連の XML ファイルによって制御されます。これらの XML ファイルに含まれる要素のうち、ビルド処理に影響するものは次のとおりです。
Target 要素 Target 要素は、プロジェクトのビルド方法を定義します。Target 要素には、MSBuild によって連続的に実行される一連のタスクが含まれます。ターゲットの詳細については、「MSBuild ターゲット」を参照してください。
Task 要素 Task 要素は、ビルド処理中に実行されるコードを指定します。タスクの詳細については、「MSBuild タスク」を参照してください。
MSBuild には、ビルド処理をカスタマイズするために使用できる一般的なタスクのコレクションが組み込まれています。詳細については、「MSBuild タスク リファレンス」を参照してください。
UsingTask 要素 UsingTask 要素は、ビルド処理で使用されるタスクを含むアセンブリを指定します。
MSBuild のスクリプト ファイルに、他のスクリプト ファイルをインポートすることができます。たとえば、あるファイルで共通の構成を定義し、それを他の構成にインクルードできます。詳細については、「方法 : 複数のプロジェクト ファイルで同じターゲットを使用する」を参照してください。
Team Foundation ビルドの処理は、次の 2 つのファイルによって制御されます。
Microsoft.TeamFoundation.Build.targets
このファイルは、Team Foundation ビルドに組み込まれている一連の既定のタスクやターゲット (Clean、DropBuild、Compile など) を定義します。各ターゲットには、そのターゲットのために呼び出されるタスクが含まれています。このファイルのターゲットの中には、他のターゲットに依存し、特定の順序で実行される一連のターゲットを形成しているものがあります。たとえば、Compile というターゲットは BeforeCompile というターゲットに依存しているため、Compile の前に BeforeCompile で定義されているすべてのタスクが実行されます。このファイルで定義されているすべてのターゲットが、ビルドのたびに実行されるわけではありません。たとえば、デスクトップ ビルドでは Clean ターゲットは実行されません。
Microsoft.TeamFoundation.Build.targets は、Visual Studio Team System に組み込まれており、<ドライブ名>:\Program Files\MSBuild\Microsoft\VisualStudio\TeamBuild\ ディレクトリに格納されています。このファイルのコピーは、1 台のコンピュータに 1 つだけ存在し、そのコンピュータで実行されるすべてのビルドで共有されます。
重要 : Microsoft.TeamFoundation.Build.targets ファイルは変更しないでください。このファイルを変更すると、各ビルド定義に影響が生じます。ビルド定義をカスタマイズするには、定義に関連付けられている TfsBuild.proj ファイルを変更します。
TfsBuild.proj
このファイルは Team Foundation ビルドの主要な構成ファイルであり、1 つのビルド定義と関連付けたり、複数のビルド定義で共有したりできます。MSBuild プロジェクト ファイルの作成ウィザードで指定する構成パラメータは、このファイルに保存されます。これには、チーム プロジェクト、ビルド ブレークで作成された作業項目の種類、ビルドの構成、ビルドするソリューションなどが含まれます。MSBuild プロジェクト ファイルの作成ウィザードでは、新しいビルド定義に新しいプロジェクト ファイルを作成したときに、このファイルが作成されます。詳細については、「方法 : ビルド定義を作成する」を参照してください。このファイルは Microsoft.TeamFoundation.Build.targets をインポートし、MSBuild に渡されます。このファイルに変更を加えると、ファイルに関連付けられているすべてのビルド定義のビルドに影響が及びます。このファイルは、既定で $\MyProject\TeamBuildTypes\BuildDefinition フォルダのソース管理に格納されます。MyProject はチーム プロジェクトの名前、BuildDefinition はビルド定義の名前を示します。[ビルド定義] ダイアログ ボックスでの指定により、このファイルを別の場所に格納することもできます。
TfsBuild.proj ファイルには、コメント テキストに使用例が含まれています。使用例では、SolutionToBuild 要素でカスタム ターゲットを呼び出す方法や、他の要素にカスタム プロパティを渡す方法などが示されています。
また、以下のファイルも重要です。
TfsBuildService.exe.config
TfsBuildService.exe.config ファイルを使用すると、Team Foundation ビルドの特定の部分を構成できます。TfsBuildService.exe.config には、Team Foundation Server との通信に使用するポートの設定、Team Foundation ビルドで使用可能な最大プロセス数の構成、プロジェクトまたはプラットフォームと構成の組み合わせごとのエラーや警告の生成、ビルド エージェント上でのソース、バイナリ、およびテスト結果のサブディレクトリ名の変更などが含まれます。詳細については、「方法 : TfsBuildService.exe.config ファイルの設定を変更する」を参照してください。
TfsBuildService.exe.config ファイルは、アプリケーション層サーバーの <root>:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies に格納されています。
TfsBuild.rsp
MSBuild プロジェクト ファイルの作成ウィザードによって生成される空のファイルです。このファイルを使用すると、カスタム logger を指定したり、MSBuild のプロパティをオーバーライドすることができます。詳細については、「MSBuild 応答ファイル」を参照してください。
ターゲット、プロパティ、およびタスク
以下のトピックでは、Microsoft.TeamFoundation.Build.targets で定義されている既定のターゲット、タスク、およびプロパティについて説明します。
カスタマイズ可能な Team Foundation のビルド ターゲット
Microsoft.TeamFoundation.Build.targets に定義され、カスタム タスクを記述してオーバーライドできるターゲットの一覧を示します。ビルド処理をカスタマイズする方法について例示します。カスタマイズ可能な Team Foundation のビルド プロパティ
Microsoft.TeamFoundation.Build.targets で定義され、TfsBuild.proj ファイルでオーバーライドできる既定のプロパティの一覧と、例を示します。Team Foundation ビルドのタスク
Microsoft.TeamFoundation.Build.targets で定義され、ビルド定義をカスタマイズするために TfsBuild.proj ファイルで変更できる既定のタスクの一覧と、例を示します。
参照
処理手順
チュートリアル : カスタム タスクを使って Team Foundation ビルドをカスタマイズする