インクリメンタル ビルド用の Team Foundation ビルドの構成
ここでは、アップグレード テンプレートを使用してインクリメンタル ビルドを定義する方法について説明します。 アップグレード テンプレートの詳細については、「アップグレード テンプレートを使用してビルドを定義する」を参照してください。 既定のテンプレートを使用すると、この手順をより簡単に実行できます。 詳細については、「既定のテンプレートを使用してビルドを定義する」を参照してください。
インクリメンタル ビルドは、Team Foundation ビルドによって保持されている以前のビルドの結果を再利用することで、前回のビルド以降の変更に基づいた最適化されたビルドを実行します。
インクリメンタル ビルドのビルド定義を作成したら、最初のビルドを実行します。 必要なワークスペースが作成され、すべてのソース ファイルがビルド コンピューター上に取得されます。
必要条件
このタスクを実行する前に、次の要件が満たされていることを確認してください。
カスタマイズするビルドの種類の TFSBuild.proj ファイルへのアクセス。
各チーム ビルド定義には、TFSBuild.proj ファイルが関連付けられています。このファイルは、Team Foundation バージョン管理の $/MyTeamProject/TeamBuildTypes/MyBuildName フォルダーにあります。 MyTeamProject はチーム プロジェクトの名前です。 これは、すべてのチーム プロジェクト ソースのルート ノードです。 MyBuildName はビルド定義に付けた名前です。 Team Foundation ビルドのビルドの種類を作成する方法の詳細については、「基本的なビルド定義の作成」を参照してください。
ローカル コンピューター上にチーム プロジェクト ファイルとビルド ファイルが置かれたローカル ワークスペース。
詳細については、「ワークスペースの作成とファイルの取得」および「チーム プロジェクトのソースの取得」を参照してください。
ヒント
また、[MSBuild 引数] パラメーターに /p:IncrementalBuild=true という文字列を含めることにより、ビルドをキューに配置するときにビルドをインクリメント方式で実行することもできます。 詳細については、「ビルドをキューに配置する」を参照してください。
必要なアクセス許可
このタスクを完了するには、[ビルドを管理します] および [ワークスペースの管理] のアクセス許可が [許可] に設定されている必要があります。 また、[チェックイン] および [チェックアウト] のアクセス許可も [許可] に設定されている必要があります。 詳細については、「Team Foundation Server のアクセス許可」を参照してください。
TFSBuild.proj ファイルのローカル コピーの取得
ビルド定義を定義する TFSBuild.proj ファイルを変更する前に、そのローカル コピーを取得する必要があります。
TFSBuild.proj ファイルのローカル コピーを取得するには
[表示] メニューの [その他のウィンドウ] をポイントし、[ソース管理エクスプローラー] をクリックします。
ソース管理エクスプローラーで、ツール バーの [ワークスペース] をクリックし、一覧から新しいワークスペースを選択します。
ビルドの種類が含まれているチーム プロジェクト フォルダーを開き、TeamBuildTypes フォルダーを展開します。
TFSBuild.proj ファイルを右クリックし、[最新バージョンの取得] をクリックして、最新バージョンのファイルをコピーします。
詳細については、「チーム プロジェクトのソースの取得」を参照してください。
TFSBuild.proj ファイルでのプロパティの設定
インクリメンタル ビルドを指定するには、TFSBuild.proj ファイルで IncrementalBuild プロパティを設定する必要があります。
TFSBuild.proj ファイルでプロパティを設定するには
IncrementalBuild プロパティは、SkipClean を true に、SkipInitializeWorkspace を true に、ForceGet を false に設定するのに便利です。
Team Foundation ビルドでフル ビルドを実行すると、Clean ターゲットにおいて、中間ビルド フォルダーおよびソース フォルダー内のファイルが消去されます。 インクリメンタル ビルドでは、これらのファイルは次のビルドでも必要になるため、このターゲットをスキップする必要があります。 これを行うには、SkipClean を true に設定します。
フル ビルドでは、Team Foundation ビルドは古いワークスペースを削除し、新しいワークスペースを作成し直して、ソース ファイルの消去と同期を行います。 インクリメンタル ビルドでは、このターゲットもスキップする必要があります。 これを行うには、SkipInitializeWorkspace を true に設定します。
Get タスクでは、既定では、Team Foundation ビルドは新しいソース ファイルを取得し、ビルド ワークスペース内の既存のファイルを上書きします。 変更されたファイルだけを取得するには、ForceGet プロパティを false に設定します。
IncrementalBuild プロパティを true に設定するには、TFSBuild.proj ファイルの末尾で、</project> 終了タグの前に PropertyGroup の定義を追加します。
<PropertyGroup> <IncrementalBuild>true</IncrementalBuild> </PropertyGroup>