ビルド情報の管理と詳細度の制御
更新 : 2011 年 4 月
完了したビルドに関する次の種類の情報を取得できます。
ビルドの実行方法はどうだったか: ビルドは成功したか。 いつ開始されたか。 ビルドにはどれくらいの時間がかかったか。 以前のビルドと比較してこのビルドの実行はどうだったか。
どのようなビルドだったか: どのソリューション、変更セット、およびバグ修正がこのビルドに組み込まれたか。
どのような問題があったか: どのような警告やエラーが発生したか。 どのテストに失敗したか。
ビルド処理を定義するとき、完了した各ビルドに関して保存される情報の詳細度を体系的に制御できます。 または、ビルドを手動でキューに配置するとき、ビルドの 1 回の実行に関してこの詳細度を制御できます。
このトピックの内容
ビルド情報の生成方法とフロー
ビルド処理を定義する
ビルド処理をキューに配置して実行する
ビルド情報を生成、フィルター処理、および保存する
ビルド情報を取得する
ログ詳細度のビルド プロセス パラメーター
ベスト プラクティス: 詳細度をできる限り低く設定する
ビルドを実行するときに詳細度を最小限にする
カスタム ビルド プロセス テンプレートを設計するときに詳細度を最小限にする
参照項目
ビルド情報の生成方法とフロー
ビルド処理を定義する
ビルド処理を開発するとき、情報の詳細度を体系的に制御できます。 DefaultTemplate.xaml または UpgradeTemplate.xaml に基づいてビルド定義を作成または編集するときは、[プロセス] タブを表示します。 [基本] ノードの [ログの詳細度] ボックスの一覧で値を選択すると、このビルド プロセス パラメーターを指定できます。
組み込みのテンプレートが必要を満たさない場合は、カスタム ビルド プロセス テンプレートを開発できます。 この種類のテンプレートを作成するときは、ビルド情報を慎重に記述してください。 詳細については、「Manage Build Verbosity in Your Custom Build Process Template (カスタム ビルド プロセス テンプレートでビルドの詳細度を管理する)」を参照してください。
ビルド処理をキューに配置して実行する
DefaultTemplate.xaml または UpgradeTemplate.xaml に基づくビルド定義をキューに配置するときは、[ログの詳細度] 設定を手動でオーバーライドできます。 [キュー ビルド] ダイアログ ボックスで、[パラメーター] タブを表示して [基本] ノードを展開し、[ログの詳細度] ボックスの一覧で値を選択してこのビルド プロセス パラメーターを指定します。 この値は、ビルドの 1 回の実行に適用されます。
ビルド情報を生成、フィルター処理、および保存する
ビルド システムは、[詳細] ビルド プロセス パラメーターの値を Verbosity に渡します。 このプロパティは、次のソースから Information によってログ記録され、データ ウェアハウスに保存されたビルド情報をフィルター処理するために使用されます。
ワークフロー アクティビティ: 複数のワークフローが、処理に成功した場合はメッセージを生成し、処理に失敗した場合は警告またはエラーを生成します。 たとえば、SyncWorkspace アクティビティは、サーバーからビルド エージェントにソース コードと他のファイルをダウンロードしたときに、重要度が低いメッセージを生成します。 ファイルをダウンロードできなかった場合、このアクティビティはエラーを生成します。 別の例として、OpenWorkItem アクティビティは作業項目を作成できなかった場合に警告を生成します。
他のワークフロー アクティビティを使用して、独自のビルド情報を直接記述できます。 詳細については、「Design a Custom Build Process Template that Writes Information with the Minimal Necessary Verbosity (詳細度が必要最小限の情報を書き込むカスタム ビルド プロセス テンプレートを設計する)」を参照してください。
MSBuild : ビルド処理は、MSBuild アクティビティを使用して MSBuild を活用し、バイナリをコンパイルして他の重要なタスクを実行します。 このアクティビティの [詳細] プロパティは、この処理が生成して次の場所に発行する情報の詳細度を制御します。
データ ウェアハウスには、コンパイルの結果、エラー、および警告が保存されます。
格納フォルダーのログには、データ ウェアハウスと同じ情報に加えて、MSBuild が生成する他のすべてのメッセージが保存されます。
MSTest: ビルド処理は、MSTest アクティビティを使用して MSTest.exe を活用し、テストを実行します。 この処理が生成するすべてのメッセージは、重要度の値が高いとして分類され、データ ウェアハウスと格納フォルダー内のログに発行されます。
ビルド情報を取得する
ビルドの実行中と完了後、ビルド結果ウィンドウから概要と詳細情報の両方を取得できます。 この情報は、ウィンドウからクリップボードにコピーできます。 格納フォルダーに直接リンクして、ログ、バイナリ、および他のデータを取得することもできます。
ログ詳細度のビルド プロセス パラメーター
DefaultTemplate.xaml または UpgradeTemplate.xaml に基づくビルド処理では、[ログの詳細度] ビルド プロセス パラメーターを使用して、ログ記録および保存された情報の詳細度を管理できます。
次の表は、ログ詳細度の値とそれぞれの影響の一覧です。
値 |
エラー |
警告 |
重要度が高いビルド メッセージ |
重要度が標準のメッセージ |
重要度が低いメッセージ |
ワークフロー アクティビティ プロパティ (入出力) |
---|---|---|---|---|---|---|
Minimal |
Y |
N |
N |
N |
N |
N |
標準 |
Y |
Y |
Y |
N |
N |
N |
Detailed |
Y |
Y |
Y |
Y |
N |
N |
診断 (通常は、ビルド処理のデバッグの目的でのみ使用してください) |
Y |
Y |
Y |
Y |
Y |
Y |
ベスト プラクティス: 詳細度をできる限り低く設定する
ビルド情報は重要ですが、ログ記録される情報が多すぎるビルド処理は問題を引き起こす可能性があります。 たとえば、データ ウェアハウス内の記憶域を過剰に消費したり、Visual Studio のパフォーマンスが低下したり、処理できる量以上の情報によってチーム メンバーに負担をかけたりなどの問題があります。
ビルドを実行するときに詳細度を最小限にする
ビルドを実行するときは通常、目標達成のために必要な情報を維持しながら最低限の詳細度を使用するというベスト プラクティスに従う必要があります。
たとえば、ビルドを実行して、最新のコード変更が含まれるバイナリを生成することがあります。 ほとんどの場合、標準の詳細度で十分と思われます。 ただし、ビルド処理のバグや異常なコード コンパイル エラーをトラブルシューティングする場合、状況によっては 詳細または診断の詳細度を使用する必要があります。
カスタム ビルド プロセス テンプレートを設計するときに詳細度を最小限にする
ビルド処理のユーザーは、情報の負担を軽減するため詳細度のフィルター処理を使用する必要があります。 次の方法によって、このフィルター処理をより効率に行うことができます。
必ず、最も適切なアクティビティを選択してメッセージを記述します (WriteBuildMessage アクティビティ、WriteBuildWarning アクティビティ、または WriteBuildError アクティビティ)。
WriteBuildMessage アクティビティ アクティビティを使用して情報をログ記録するときは、計画的で一貫した方法を使用して Importance プロパティを設定します。 メッセージの重要度の値を高くするときは、保存されてチーム メンバーに表示されるデータの量が多くなる可能性がある点に注意してください。
注意
DoWhile、ForEach<T>、While などのループ構造の内部でこれらのアクティビティを使用する場合、その決定の影響が特に大きくなる可能性があります。
参照項目
「Team Foundation ビルド アクティビティ」では、このトピックで扱ったビルド プロセス ワークフロー アクティビティについて説明しています。
「既定のテンプレートを使用してビルドを定義する」と「アップグレード テンプレートを使用してビルドを定義する」では、ビルド定義を作成する方法を紹介しています。
「[ビルドの結果] ウィンドウの表示」では、ビルド結果ウィンドウを使用する方法を紹介しています。
「IBuildDetail」、「BuildMessageImportance」、および「BuildVerbosity」では、ビルド情報機能を提供する Team Foundation ビルド API の主要な要素について説明しています。
「MSBuild コマンド ライン リファレンス」では、MSBuild について説明しています。
「ビルド トリガーと理由の指定」と「ビルドをキューに配置する」では、ビルドを自動的および手動でキューに配置する方法について説明しています。
履歴の変更
日付 |
履歴 |
理由 |
---|---|---|
2011 年 4 月 |
トピックを追加 |
情報の拡充 |