連載:Team Foundation Server 2008の下流工程への適用

第4回 チーム・ビルドによる開発の安定化

アバナード株式会社 安藤 大祐
2009/08/12
Page1 Page2 Page3

 Team Foundation Server 2008(以下、TFS)の導入は、影響範囲が比較的限定的である下流工程(=プログラミングやテスト・ビルドなどの領域)から実施していくのがベターな選択肢である。

 本連載では、前回までにバージョン管理システム導入に関するノウハウと活用方法を紹介した。今回は、下流工程をサポートするTFSのもう1つ機能である、チーム・ビルド(=自動ビルド・システム)について、そのノウハウとカスタマイズについて紹介したい。

チーム・ビルドのアーキテクチャ

 まずは、チーム・ビルドのアーキテクチャを説明したいと思う。

 詳細は後述するが、チーム・ビルドを効果的に利用するためには、プロジェクトに合わせたビルド・プロセスのカスタマイズが重要である。そのためには、チーム・ビルドのアーキテクチャを理解しておくことが必要だ。その概要を図にまとめると次のようになる。

図1 チーム・ビルドのアーキテクチャ概要図
DWHは「データ・ウェアハウス(Data WareHouse)」を指す。

 簡単にいってしまえば、チーム・ビルドとは、TFSのカスタム・タスクを含むMSBuildのスクリプト一式であるといえる。

 チーム・ビルドでは、以下の2つのスクリプト・ファイルを利用している。

  • TFSBuild.proj:
    チーム・エクスローラのビルドの定義により作成されるファイルであり、バージョン管理上の任意のフォルダに格納される。ビルドの名前やソリューションへのパスなど、環境情報が定義される。

  • Microsoft.TeamFoundation.Build.targets:
    ビルド・エージェントのインストール時にサーバに配置されるファイルで、すべてのビルド・スクリプトから参照される。チーム・ビルド共通のプロセスが記述されており、ソース・コードの取得からコンパイル、作業項目の更新などを含むすべてのプロセスは、このファイルに定義されている。

 つまり、ビルド・プロセスのカスタマイズを行うためには、上記のファイルに記述されているスクリプトの内容を理解し、適宜、修正を行えばよいというわけである。

【コラム】MSBuildのカスタム・ライブラリの利用とセットアップ

 MSBuildでは、カスタム・ライブラリを用いることによって、独自のビルド機能を追加することが可能だ。。

 オープンソースでは、すでに数多くの優れたMSBuildライブラリが開発されているが、当然、それらもチーム・ビルドで利用可能だ。TFSBuild.projファイルを修正し、以下のように<Import>要素を記述すればよい。

……省略……
<!-- ここは編集しないでください -->
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets" />
<!-- 以下のように、カスタム・ライブラリの参照を追加 -->
<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>
……省略……
Import要素の記述例
<Import>要素により、カスタム・ライブラリ(この例では「MSBuild.Community.Tasks.Targets」)を参照する。

 筆者がお勧めする、メジャーなカスタム・ライブラリは以下のとおりだ。利用したい機能によって使い分けるとよい。

 具体的なカスタマイズ方法を説明する前に、まずは自動ビルドの活用方法を説明しよう。


 INDEX
  [連載] Team Foundation Server 2008の下流工程への適用
  第4回 チーム・ビルドによる開発の安定化
  1.チーム・ビルドのアーキテクチャ
    2.自動ビルドの効果と種類
    3.ビルド・プロセスのカスタマイズ

インデックス・ページヘ  「Team Foundation Server 2008の下流工程への適用」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間