MSBuild Binlog Analyzer for VS Code 拡張機能が Visual Studio Marketplace で試験版として利用可能になり、別のビューアーに頼ることなく、MSBuild バイナリログの分析を Visual Studio Code エディター内で行えるようになりました。この拡張機能は GitHub Copilot を使用し、開発者によるビルド処理の失敗原因の理解、遅延の分析、複数のビルド処理の比較、リグレッションの検出を支援します。
.binlog ファイルには、MSBuild のプロジェクト、ターゲット、タスク、プロパティ、診断の詳細が記録されます。しかし、そこから重要な情報を取り出すには、別のツールを開き、どこを調べるべきかを把握しなければならない場合があります。この拡張機能は、ログの内容を開発環境内で理解しやすい回答に変換することで、この問題に対処します。
失敗原因とパフォーマンスの分析
開発者はビルド処理が失敗した理由を Copilot に尋ねることができ、NuGet パッケージの復元メッセージやその他の出力を手作業で調べる代わりに、拡張機能が分かりやすい言葉で説明を提示します。また、ワンクリックで修正を実行することもできます。Copilot は問題のあるプロジェクトを読み込み、修正を適用し、再ビルドを実行した後、結果を確認するために修正前後のログを読み込みます。診断を右クリックして Auto-fix with Copilot を選択することで、問題を一つずつ修正することもできます。
ビルドが遅い場合、拡張機能は遅いターゲットとタスクを順番に表示し、ビルド処理の実際の所要時間を決めるクリティカルパスを強調します。また、どのターゲットが再ビルドされたのか、その理由も説明できるため、推測に頼らず増分ビルドが機能していることを確認できます。
比較とリグレッションの検出
読み込んだ任意の binlog ファイルをベースラインとして設定でき、拡張機能は後続のビルド処理を自動的にベースラインと比較します。ステータスバーにはベースラインに対する変化率を示すバッジが表示され、Regressions ノードには、遅くなったターゲット、追加または削除された診断、MSBuild プロパティの差分、NuGet パッケージのバージョン変更など、変更の詳細が表示されます。
Build Comparison インターフェースでは、2 つのログをターゲット単位で視覚的に比較し、差分を表示するとともに、MCP サーバーが計算したクリティカルパスを強調できます。情報源では、Copilot が CoreCompile 処理における 473% の増加を追跡し、それがコールド状態から開始されたことによるものであり、コードの問題ではなく初回コンパイルのコストであると説明した例が挙げられています。
サーバーとインストール
この拡張機能は、.NET グローバルツール Microsoft.AITools.BinlogMcp と連携して動作します。このツールは Model Context Protocol を通じて数十種類のビルド分析ツールを提供します。Copilot はログに実際に含まれるデータに基づくためにこれらのツールを呼び出します。また、サーバーは初回使用時に自動的にインストールされ、手動設定は必要ありません。
拡張機能を使用するには、VS Code 1.99 以降、GitHub Copilot、.NET SDK が必要です。コマンドパレットからショートカット Ctrl+Shift+P を使用して Binlog: Load File コマンドで binlog ファイルを開くことができます。また、Build & Collect Binlog オプションを使用してビルド中にログを作成したり、Structured Log Viewer から開いたりすることもできます。
ログを読み込んだ後は、Copilot Chat で @binlog 参加者と対話し、ビルドが失敗した理由や遅いターゲットなどを質問できます。さらに、/errors、/perf、/timeline、/compare、/summary、/incremental、/buildcheck などのコマンドも使用できます。
追加ツールと CI/CD との統合
この拡張機能には、プロジェクト、エラー、警告、パフォーマンスのセクションを表示する Binlog エクスプローラーが含まれています。また、診断は VS Code の標準 Problems パネルにも表示され、各プロジェクトには CodeLens と Copilot に説明を求めるオプションが用意されています。そのほか、所要時間のタイムライン、改善案の提示と適用、その後の 2 つのテスト間の自動比較による検証、ビルドイベント、タスク、メッセージ、プロパティの検索機能も備えています。
Azure DevOps Pipelines および GitHub Actions から binlog ファイルをダウンロードし、ブランチまたはプルリクエストでフィルターして、VS Code を離れることなく失敗した CI ビルドを分析することもできます。エージェントモードやカスタムチャットモード用の言語ツールに加え、すぐに使用できる Build Analysis モードも提供されています。
この拡張機能は現在もプレビュー段階にあり、活発に開発されています。編集インターフェースを使わずに作業したいユーザー向けに、情報源では Microsoft Binlog MCP Server にも言及しています。これは同じ分析エンジンをヘッドレス方式で使用し、CI 環境での非対話型の調査に適しています。問題の報告や提案は dotnet/skills リポジトリで受け付けています。