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