resolve-project-references

Diagnoses misleading ResolveProjectReferences timing in MSBuild performance summaries and redirects to task self-time analysis.

1|Updated Jun 1, 2026
One-click install
npx skills add https://github.com/D1ssolve/craft-agents --skill resolve-project-references-d1ssolve
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: resolve-project-references
Source: https://github.com/D1ssolve/craft-agents/tree/main/skills/resolve-project-references
Command: npx skills add https://github.com/D1ssolve/craft-agents --skill resolve-project-references-d1ssolve

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? When analyzing .NET build performance, ResolveProjectReferences often appears as the most expensive target in the Target Performance Summary, leading developers to waste effort optimizing a target that is mostly idle wait time for dependent project builds rather than real CPU work. ## Core Features & Use Cases - Misleading Metric Detection: Confirms when ResolveProjectReferences dominates the Target Performance Summary and explains why the number reflects node-yield wait time (dotnet/msbuild#3135), not actual work. - Task Self-Time Redirection: Guides analysis to the Task Performance Summary using the binlog MCP expensive_tasks tool, with a text-log replay fallback via dotnet msbuild and grep. - Bottleneck Routing: Points identified tasks (Csc, ResolveAssemblyReference, Copy) to the appropriate follow-up skills such as build-perf-diagnostics and build-parallelism. - Use Case: A developer sees ResolveProjectReferences consuming 60% of build time in a binlog and is about to optimize it; this Skill explains the metric is misleading and helps identify Csc analyzer time as the true bottleneck. ## Quick Start Analyze my build.binlog where ResolveProjectReferences appears as the most expensive target and tell me what the real bottleneck is.

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 build?

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

How do I find the real bottleneck in a .NET build?

Use the Task Performance Summary instead of the Target Performance Summary. The binlog MCP expensive_tasks tool gives task self-time rankings directly, 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 reported time is wait time, not CPU work. Focus on the actual tasks with high self-time such as Csc, ResolveAssemblyReference, or Copy.

What do I need before analyzing MSBuild build performance?

You need a diagnostic build log or binlog containing the Target Performance Summary. Capture one with the MSBuild binary logger before running this analysis.

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

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