チュートリアル : Visual Studio セットアップ プロジェクトをビルドするためにチーム ビルドを構成する
更新 : 2007 年 11 月
Team Foundation ビルドをカスタマイズするには、カスタム タスクを追加するか、ビルド処理の特定の段階で実行される MSBuild タスクを使用します。ここでは、MSBuild の Exec タスクを使用して Visual Studio セットアップ プロジェクトをビルドするように、ビルドの定義をカスタマイズする手順を説明します。
前提条件
このチュートリアルを完了するための要件は次のとおりです。
クライアント コンピュータが次の要件を満たしている。
Development Edition がインストールされている。
チーム エクスプローラがインストールされている。
Team Foundation Server に接続できる。
ローカル ディレクトリをワークスペースとして使用する。
次の要件を満たすチーム プロジェクトがある。
ビルドの定義が作成されている。
ソース管理用のワークスペースがローカル ディレクトリにマップされている。
詳細については、「方法 : マップされたワークスペースを作成する」を参照してください。このチュートリアルでは、ローカル ワークスペースとして C:\DeploymentProjects を使用します。
ソース管理が有効になっている。
Team Foundation バージョン管理を使用できるように Visual Studio を構成するには、[ツール] メニューの [オプション] をクリックし、[ソース管理] をクリックします。
[現在のソース管理プラグイン] ボックスの [Visual Studio Team Foundation Server] を選択します。
Team Foundation ビルドがインストールされたビルド エージェントがある。
Visual Studio がビルド エージェントにインストールされている。これは、MSBuild の Exec タスクで、devenv.exe を呼び出してセットアップ プロジェクトをビルドするために必要です。詳細については、「Exec タスク」および「Devenv コマンド ライン スイッチ」を参照してください。
メモ : |
---|
ビルド エージェントは、ビルドを実行するコンピュータです。詳細については、「方法 : ビルド エージェントを作成および管理する」を参照してください。 |
必要なアクセス許可
このチュートリアルを完了するには、[ビルドの管理] および [ワークスペースの管理] のアクセス許可が [許可] に設定されている必要があります。また、[チェックイン] および [チェックアウト] のアクセス許可も [許可] に設定されている必要があります。
チーム プロジェクトを作成するには、[新しいプロジェクトの作成] のアクセス許可が [許可] に設定され、Windows SharePoint Server の SharePoint サーバー管理グループのメンバであり、SQL Reporting Services で [コンテンツ マネージャ] のアクセス許可を持っている必要があります。
Team Foundation ビルドによって作成されたインストーラを実行するコンピュータには、インストールを実行するアクセス許可が必要です。
Visual Studio プロジェクトの作成
このチュートリアルでは、Visual Studio セットアップ プロジェクトをビルドする Team Foundation ビルドの構成で使用する例として、単純な C# Windows フォーム アプリケーションを作成します。
Visual Studio Windows フォーム アプリケーションを作成するには
[ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。
[新しいプロジェクト] ダイアログ ボックスの [プロジェクトの種類] ペインで、[Visual C#] を選択します。[テンプレート] ペインで [Windows フォーム アプリケーション] をクリックします。
[プロジェクト名] ボックスに「HelloWorldTest」と入力します。[場所] ボックスに「C:\DeploymentProjects」と入力するか、チーム プロジェクト用に選択したローカル ワークスペースを開きます。
[OK] をクリックします。
HelloWorldTest がソリューション エクスプローラに表示され、Form1.cs が Windows フォーム デザイナに表示されます。
[表示] メニューの [ツールボックス] をクリックし、表示されるコントロールのリストを作成します。
ボタン コントロールをフォームにドラッグします。
新しいボタンをダブルクリックしてコード エディタを開きます。
Visual C# によって button1_Click というメソッドが挿入されます。
メソッドに次のコードを追加します。
private void button1_Click(object sender, EventArgs e) { MessageBox.Show("Hello World!"); }
[ファイル] メニューの [すべてを保存] をクリックして、変更を保存します。
[ビルド] メニューの [HelloWorldTest のビルド] をクリックしてソリューションをビルドし、ビルド エラーがないことを確認します。
配置プロジェクトを作成するには
ソリューション エクスプローラで HelloWorldTest ソリューションを選択し、[ファイル] メニューの [追加] をポイントして、[新しいプロジェクト] をクリックします。
[新しいプロジェクトの追加] ダイアログ ボックスで、[プロジェクトの種類] ペインの [その他のプロジェクトの種類] ノードを展開し、[セットアップと配置] をクリックします。次に、[テンプレート] ペインの [セットアップ プロジェクト] をクリックします。[プロジェクト名] ボックスに「HelloWorldTestInstaller」と入力します。
[OK] をクリックし、ダイアログ ボックスを閉じます。
プロジェクトがソリューション エクスプローラに追加され、ファイル システム エディタが表示されます。
インストーラに HelloWorldTest アプリケーションを追加するには
ソリューション エクスプローラで HelloWorldTestInstaller を選択します。ファイル システム エディタで、[アプリケーション フォルダ] ノードを右クリックし、[追加] をポイントして、[ファイル] をクリックします。
[ファイルの追加] ダイアログ ボックスで、HelloWorldTest.exe のある場所を開き、このファイルを選択して、[開く] をクリックします。
このチュートリアルで使用する場所は、C:\DeploymentProjects\HelloWorldTest\HelloWorldTest\obj\Debug\HelloWorldTest.exe です。ファイル パスは、使用するローカル ワークスペースによって異なることがあります。
[ファイル] メニューの [すべてを保存] をクリックして、変更を保存します。
[ビルド] メニューの [HelloWorldTestInstaller のビルド] をクリックしてインストーラのローカル コピーをビルドし、ビルド エラーがないことを確認します。
セットアップ プロジェクトによってインストーラがビルドされたことを確認するには、出力ファイルの場所を開きます。出力ファイルの場所に、HelloWorldTestInstaller.msi と setup.exe があることを確認してください。
メモ : 出力ファイルを見つけるには、ソリューション エクスプローラで HelloWorldTestInstaller プロジェクトを右クリックし、[プロパティ] をクリックします。[HelloWorldTestInstaller プロパティ ページ] ダイアログ ボックスの [出力ファイル名] ボックスに、インストーラ ファイルの場所が表示されます。
Team Foundation ビルドで動作するように vdproj ファイルを変更するには
ソリューション エクスプローラで HelloWorldTestInstaller プロジェクトを右クリックし、[プロパティ] をクリックします。[HelloWorldTestInstaller プロパティ ページ] ダイアログ ボックスで、[構成マネージャ] をクリックします。
HelloWorldTest と HelloWorldTestInstaller の両方の [ビルド] ボックスが選択されていることを確認します。
[閉じる] をクリックして [構成マネージャ] ダイアログ ボックスを閉じ、[OK] をクリックして [HelloWorldTestInstaller プロパティ ページ] ダイアログ ボックスを閉じます。
[ファイル] メニューの [すべてを保存] をクリックして、変更を保存します。
HelloWorldTestInstaller.vdproj ファイルを見つけます。
このチュートリアルで使用する場所は、C:\DeploymentProjects\HelloWorldTest\HelloWorldTestInstaller です。ファイル パスは、使用するローカル ワークスペースによって異なることがあります。
HelloWorldTestInstaller.vdproj を右クリックし、[ファイルを開くアプリケーションの選択] をポイントして、[プログラムの選択] をクリックします。[ファイルを開くアプリケーションの選択] ダイアログ ボックスで、[プログラム] ペインの [メモ帳] を選択し、[OK] をクリックして、メモ帳で HelloWorldTestInstaller を開きます。
すべてのファイル パスが、HelloWorldTestInstaller.vdproj ファイルの場所への相対パスとして表示されていることを確認します。
絶対パスは含めないでください。
HelloWorldTest を Team Foundation ソース管理に追加してチェックインするには
ソリューション エクスプローラで HelloWorldTest ソリューションを右クリックし、[ソリューションをソース管理に追加] をクリックします。
すべてのファイルの横に黄色のプラス記号が表示されます。これは、ソース管理への追加が保留中であることを示します。
ソリューション エクスプローラで HelloWorldTest ソリューションを右クリックし、[チェックイン] をクリックします。[チェックイン - ソース ファイル - ワークスペース: <ワークスペース名] ダイアログ ボックスで、選択中のファイルの位置までスクロールします。HelloWorldTest.exe の [名前] ボックスをクリアし、[チェックイン] をクリックします。
ファイルが Team Foundation バージョン管理にチェックインされます。
重要 : Team Foundation ビルドは、新しい実行可能ファイルをビルドするように構成されているため、実行可能ファイルはチェックインしないようにします。
TFSBuild.proj ファイルの変更
Team Foundation ビルドを使用して HelloWorldTestInstaller プロジェクトをビルドする前に、新しいビルドの定義を作成するか、既存のビルドの定義を変更する必要があります。詳細については、「方法 : ビルド定義を作成する」を参照してください。セットアップ プロジェクトのビルドを指示するビルドの定義に関連付けられている、TFSBuild.proj プロジェクト ファイルを変更します。
セットアップ プロジェクトをビルドするように TFSBuild.proj ファイルを変更するには
[表示] メニューの [その他のウィンドウ] をポイントし、[ソース管理エクスプローラ] をクリックします。
ソース管理エクスプローラの [フォルダ] ペインでチーム プロジェクトを展開し、作成した TFSBuild.proj ファイルを見つけます。既定の場所は、チーム プロジェクト フォルダの下にある TeamBuildTypes フォルダです。
表示ペインで、HelloWorldTest と HelloWorldTestInstaller をビルドするために使用するビルドの種類を選択します。ローカル ワークスペースにファイルのコピーが存在しない場合は、TeamBuildType フォルダを右クリックし、[最新バージョンの取得] をクリックします。
この操作によって、使用可能なファイルが編集用にチェックアウトされます。
表示ペインで、ビルドの種類をダブルクリックし、TFSBuild.proj を右クリックして、[編集用にチェックアウト] をクリックします。[チェックアウト] ダイアログ ボックスで、[なし - 共有チェックアウトを許可します] を選択し、[チェックアウト] をクリックします。
TFSBuild.proj ファイルの横に赤いチェックマークが表示され、ファイルのソース管理状態を示します。
TFSBuild.proj ファイルをダブルクリックして、このファイルを Visual Studio XML エディタで開きます。
TFSBuild.proj ファイルの末尾の </Project> 終了タグの前に、次の太字で示したコードを追加します。
<Target Name="AfterCompile"> <Exec Command=""$(ProgramFiles)\Microsoft Visual Studio 9.0\Common7\IDE\devenv" "$(SolutionRoot)\HelloWorldTest\HelloWorldTestInstaller\HelloWorldTestInstaller.vdproj" /Build "Debug|Any CPU""/> <Copy SourceFiles="$(SolutionRoot)\HelloWorldTest\HelloWorldTestInstaller\Debug\HelloWorldTestInstaller.msi; SolutionRoot)\HelloWorldTest\HelloWorldTestInstaller\Debug\setup.exe" DestinationFolder="$(OutDir)" /> </Target>
ここでは、MSBuild の exec タスクを使用して HelloWorldTestInstaller セットアップ プロジェクトをビルドするために、devenv.exe プログラムを呼び出します。詳細については、「Exec タスク」を参照してください。MSBuild の copy タスクは、.msi ファイルおよび .exe ファイルを Team Foundation ビルド出力ディレクトリにコピーするために使用されます。詳細については、「Copy タスク」を参照してください。
AfterCompile ターゲットは、HelloWorldTest アプリケーションのコンパイル先で、Team Foundation ビルドによる CoreCompile ターゲットの実行完了後に実行されます。ターゲット名の詳細については、「Team Foundation ビルドの構成ファイルについて」を参照してください。
[ファイル] メニューの [上書き保存] をクリックして変更を保存し、TFSBuild.proj を閉じます。
ソース管理エクスプローラで、TFSBuild.proj ファイルを右クリックし、[保留中の変更をチェックイン] をクリックします。必要に応じて、[チェックイン - ソース ファイル - ワークスペース: <ワークスペース名>] ダイアログ ボックスでコメントを追加することもできます。[チェックイン] をクリックして、TFSBuild.proj をソース管理にチェックインします。
ビルドの定義の実行
TFSBuild.proj ファイルを変更し、Team Foundation バージョン管理に変更を保存したら、ビルドの定義を実行して配置プロジェクトをビルドします。
チーム ビルドの定義を実行するには
[ビルド] メニューの [新しいビルドをキューに配置] をクリックします。
[ビルド "チーム プロジェクト名" をキューに配置] ダイアログ ボックスで、使用するビルドの定義、ビルド エージェント、キュー内の優先度を選択し、[キューに登録] をクリックします。
詳細については、「方法 : ビルド定義をキューに配置する/ビルド定義を開始する」を参照してください。
ビルド処理はビルド エクスプローラで監視できます。詳細については、「方法 : ビルドの進行状況を監視する」を参照してください。
ビルド エクスプローラの [概要] 見出しの下で、ログ ファイルをクリックします。ログ ファイルを調べてエラーを確認します。
メモ : 警告 "MSB4078: プロジェクト ファイル "HelloWorldTestInstaller\HelloWorldTestInstaller.vdproj" は MSBuild ではサポートされていないため、ビルドできません。" は無視してかまいません。このファイルは、MSBuild の Exec タスクを使用する devenv.exe プログラムによってビルドされます。
生成されたセットアップ ファイルをインストールするには
ビルドの格納場所である \\<drop location>\Public_build\HelloWorldTestBuild_<build number>\Release を見つけます。
格納場所はログ ファイルの場所と同じファイル共有であり、ビルド エクスプローラの [概要] 見出しの下に表示されます。
HelloWorldTestInstaller.msi ファイルと setup.exe ファイルを、Windows の管理者セキュリティ グループのメンバになっているコンピュータ、または [インストール] のアクセス許可が [許可] に設定されているコンピュータにコピーします。
setup.exe ファイルをダブルクリックし、インストール ウィザードの指示に従って操作します。
HelloWorldTestInstaller.exe が、パス <root>:\Program Files\Microsoft\HelloWorldTestInstaller にインストールされます。
<root>:\Program Files\Microsoft\HelloWorldTestInstaller に移動します。
.exe ファイルをダブルクリックしてアプリケーションを実行します。
次の手順
Visual Studio セットアップ プロジェクトを変更して、インストール ウィザードに手順を追加できます。詳細については、「Windows インストーラでの配置の概念」を参照してください。
参照
処理手順
チュートリアル : カスタム タスクを使って Team Foundation ビルドをカスタマイズする