mcpField
R
resolve-project-references

resolve-project-references

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

resolve-project-references について

MSBuild のパフォーマンスを調査する開発スキルです。ResolveProjectReferences の時間には依存プロジェクトの待機が含まれる場合があると説明し、タスク自身の処理時間を調べる方法を示します。

主な機能

  1. 01誤解を招くターゲット時間の特定
  2. 02依存プロジェクト待機の説明
  3. 03タスクパフォーマンス概要の利用
  4. 04binlog MCP によるタスク時間の順位付け
  5. 05代替手段としてのテキストログ再生

活用シーン

  1. 01レポートで ResolveProjectReferences が最長となる状況の調査
  2. 02ターゲット時間ではなくタスク時間に基づく最適化
  3. 03ビルドパフォーマンス概要からのボトルネック特定

MCP 対応

このスキルは、ビルドログからタスク自身の処理時間を順位付けする binlog MCP サーバーの expensive_tasks ツールを推奨します。

インストール

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

$npx skills add https://github.com/dotnet/skills --skill resolve-project-references

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

詳細

誤解を招く ResolveProjectReferences の所要時間

報告される所要時間は CPU 処理時間ではなく、壁時計時間であることを説明し、ResolveProjectReferences を誤って最適化するのを防ぎます。

使用する場合

  • ターゲットパフォーマンスの概要で、ResolveProjectReferences が最もコストの高いターゲットとして表示される
  • 開発者が ResolveProjectReferences を直接最適化しようとしている
  • ビルドパフォーマンスの分析で、単一のターゲットがビルド時間全体の 50~80% を占めている

使用しない場合

  • 一般的なビルドパフォーマンスの最適化(代わりに build-perf-diagnostics を使用してください)
  • ボトルネックが明らかに別のターゲットである(例:Csc、ResolveAssemblyReference)
  • ユーザーがまだ binlog またはパフォーマンス概要を取得していない

入力

入力必須説明
ビルドログまたは binlogはいターゲットパフォーマンスの概要を含む診断ビルドログまたは binlog

ワークフロー

ステップ 1:誤解を招く症状を確認する

ターゲットパフォーマンスの概要で、ResolveProjectReferences が最上位のターゲットとして表示されることを確認します。これが誤解を招く指標です。

ステップ 2:誤解を招く理由を説明する

報告される時間には、MSBuild ノードが譲渡されている間に依存プロジェクトのビルドを待つ時間が含まれます(dotnet/msbuild#3135 を参照)。この待機中、ノードはほかのプロジェクトで有用な処理を行っている場合があります。ターゲット自体の処理はごくわずかです。

ステップ 3:タスクの自己時間に着目する

タスクパフォーマンスの概要を使用して、実際のボトルネックを特定します。

優先:binlog MCP(推奨)

binlog MCP サーバーの expensive_tasks ツールを使用して、binlog からタスクの自己時間ランキングを直接取得します。

代替手段:テキストログの再生(MCP を利用できない場合)
dotnet msbuild build.binlog -noconlog -fl "-flp:v=diag;logfile=full.log;performancesummary"
grep "Task Performance Summary" -A 50 full.log

実際のタスクの自己時間に着目します。

  • Csc:build-perf-diagnostics スキルを参照してください(セクション 2:Roslyn アナライザー)
  • ResolveAssemblyReference:build-perf-diagnostics スキルを参照してください(セクション 1:RAR)
  • Copy:build-perf-diagnostics スキルを参照してください(セクション 4:ファイル I/O)
  • シリアル化のボトルネック:build-parallelism スキルを参照してください

検証

  • ターゲットパフォーマンスの概要ではなく、タスクパフォーマンスの概要を使用した
  • ResolveProjectReferences を最適化対象に設定しなかった
  • 実際のボトルネックとして具体的なタスク(例:Csc、Copy、ResolveAssemblyReference)を特定した

コメント