resolve-project-references

Diagnose misleading ResolveProjectReferences target times in MSBuild performance summaries.

Updated Sep 22, 2026
One-click install
npx skills add https://github.com/bytecakelake/Nurse-Scheduler --skill resolve-project-references-bytecakelake
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: resolve-project-references
Source: https://github.com/bytecakelake/Nurse-Scheduler/tree/main/.agents/plugins/dotnet-msbuild/skills/resolve-project-references
Command: npx skills add https://github.com/bytecakelake/Nurse-Scheduler --skill resolve-project-references-bytecakelake

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? MSBuild Target Performance Summaries often show ResolveProjectReferences as the most expensive target, but that time is mostly wall-clock wait for dependent project builds, not real CPU work. This Skill prevents wasted optimization effort by redirecting analysis to actual task self-time. ## Core Features & Use Cases - Misleading Metric Detection: Confirms when ResolveProjectReferences dominates the Target Performance Summary and explains why the number is inflated by node-yield wait time (dotnet/msbuild#3135). - Task Self-Time Redirection: Guides users to the Task Performance Summary via the binlog MCP expensive_tasks tool, with a text-log replay fallback using dotnet msbuild and grep. - Use Case: A developer sees ResolveProjectReferences consuming 60% of build time and plans to optimize it. This Skill explains the metric is misleading and points them to the real bottleneck, such as Csc, ResolveAssemblyReference, or Copy tasks. ## Quick Start Analyze my build.binlog performance summary and tell me whether ResolveProjectReferences is really the bottleneck or which task I should optimize instead.

Frequently Asked Questions about resolve-project-references

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
Why is ResolveProjectReferences the slowest target in my MSBuild log?▼

ResolveProjectReferences time is mostly wall-clock wait for dependent projects to build while the MSBuild node is yielded, not actual CPU work (see dotnet/msbuild#3135). The target itself does very little work, so the reported number is misleading.

How do I find the real bottleneck in an MSBuild build?▼

Use the Task Performance Summary instead of the Target Performance Summary to see task self-time. The binlog MCP expensive_tasks tool ranks tasks directly from a binlog, or replay the binlog with dotnet msbuild -flp:v=diag;performancesummary and grep the Task Performance Summary section.

Should I try to optimize ResolveProjectReferences directly?▼

No. Optimizing ResolveProjectReferences directly is misguided because its time reflects waiting on dependent project builds. Instead identify the concrete task with high self-time, such as Csc, ResolveAssemblyReference, or Copy, and optimize that.

What do I need before analyzing MSBuild target performance?▼

You need a diagnostic build log or binlog containing the Target Performance Summary. Capture one with a binary log build, then use the binlog MCP tools or replay it to a text log with performance summary enabled.

When should I use build-perf-diagnostics instead of this analysis?▼

Use build-perf-diagnostics for general build performance optimization or when the bottleneck is clearly another target like Csc or ResolveAssemblyReference. This guidance applies only when ResolveProjectReferences misleadingly tops the Target Performance Summary.