mcpField
B
binlog-failure-analysis

binlog-failure-analysis

github.com/dotnet開発5.8k3.7k 回インストール1 日前に更新
リポジトリ

binlog-failure-analysis について

`.binlog` ファイルから MSBuild のビルド失敗を調べるスキルです。ビルドエラーや警告を調査する開発者向けで、同梱の binlog MCP サーバーによる構造化クエリを優先し、利用できない場合はテキストログへの再生に切り替えます。

主な機能

  1. 01エラーと警告の確認
  2. 02プロパティ、項目、評価データの照会
  3. 03ターゲット実行と埋め込みファイルの確認
  4. 04binlog のテキストログへの再生

活用シーン

  1. 01MSBuild ビルド失敗の原因調査
  2. 02binlog に記録されたプロジェクトデータの確認
  3. 03MCP が使えない場合の診断継続

MCP 対応

`binlog` 名前空間で提供される同梱の `Microsoft.AITools.BinlogMcp` サーバーを使い、`.binlog` ファイルを照会します。サーバーを利用できない場合のテキストログ再生手順もあります。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/dotnet/skills --skill binlog-failure-analysis

インストール後、Claude Code で/binlog-failure-analysisを入力して読み込まれたか確認します。

詳細

バイナリログを使用した MSBuild の失敗分析

このスキルでは、.binlog ファイルから MSBuild のビルド失敗を診断します。推奨される方法は、このプラグインに同梱されている binlog MCP サーバー(binlog MCP 名前空間で公開される Microsoft.AITools.BinlogMcp)を使用することです。MCP サーバーを利用できない場合、修復を希望するときは troubleshoot-binlog-mcp を使って起動の問題を診断してください。修復がブロックされた場合、拒否された場合、またはこのタスクに不要な場合は、末尾の binlog の再生ワークフローに進んでください。

主なワークフロー — binlog MCP

MCP サーバーには、テキストログを解析せずに .binlog を調査するための構造化ツールが用意されています。binlog をテキストファイルに再生するのではなく、ツールを直接呼び出してください。利用可能なツールがわからない場合は、まず MCP の tools/list を呼び出してください。

重要な制約:

  • .binlog ファイルはバイナリ形式です。cat、head、strings を実行したり、直接読み取ったりしないでください。照会には MCP ツールのみを使用してください。
  • 元のソースファイルやプロジェクトファイルがディスク上に存在するとは限りません。プロジェクトファイル(.csproj、.props、.targets、App.config など)がディスク上で見つからない場合、MCP ツール(埋め込みファイルやソースファイルの取得など)を通じてのみ binlog 内から読み取れます。
  • 調査しながら、判明したことをまとめてください。 調査に時間を使い切らないでください。十分な証拠が得られたら、結論を提示してください。調査の途中でタイムアウトするより、根拠を明確にした部分的な回答のほうが適切です。

利用可能な MCP サーバーツールを使って、バイナリログから以下を照会してください。

  • ビルドエラーと警告
  • MSBuild プロパティとその値
  • MSBuild 項目(PackageReference、ProjectReference など)
  • プロジェクトの評価データ
  • ターゲットの実行詳細
  • binlog に埋め込まれたファイルの内容

フォールバックワークフロー — テキストログへの再生(MCP を利用できない場合)

MCP サーバーを起動できない場合(古い SDK やオフライン環境など)にのみ使用してください。

binlog をテキストログに再生する
dotnet msbuild build.binlog -noconlog \
  -fl  "-flp:v=diag;logfile=full.log;performancesummary" \
  -fl1 "-flp1:errorsonly;logfile=errors.log" \
  -fl2 "-flp2:warningsonly;logfile=warnings.log"

PowerShell に関する注意: -flp:"v=diag;logfile=full.log;performancesummary" を使用してください (セミコロンを引用符で囲みます)。

テキストログを検索する
cat errors.log
grep -n -B2 -A2 "CS0246" full.log
grep -i "CoreCompile.*FAILED\|Build FAILED\|error MSB" full.log
grep 'Target "CoreCompile"' full.log | grep -oP 'project "[^"]*"'

binlog の生成(存在しない場合のみ)

dotnet build /bl:build.binlog

コメント