What problem does it solve?
It helps diagnose why MSBuild builds are slow to start due to expensive project evaluation—before any compilation even begins.
Core Features & Use Cases
- Pinpoints MSBuild evaluation overhead: breaks down the 5 evaluation phases and identifies where time is being spent.
- Uses binlog and timing signals: replays
build.binlog to locate “Evaluation started/finished” spans and detect repeated evaluations of the same project.
- Reveals heavy project expansion and import chains: uses
/pp:full.xml preprocessing to inspect the fully expanded project and diagnose deep or excessive imports.
- Targets common root causes: flags broad glob patterns that traverse huge directories (e.g.,
node_modules, .git, bin/obj), and highlights costly property functions that perform file I/O during evaluation.
- Provides concrete optimization actions: recommends excluding large directories via
DefaultItemExcludes, tightening globs, reducing import depth, avoiding evaluation-time file I/O in property functions, and using graph build to reduce redundant evaluations.
Quick Start
Run the skill to analyze MSBuild evaluation time for a slow-starting .csproj using a binlog replay and /pp:full.xml to identify the specific evaluation phase, glob/import/property-function causes, and redundant evaluations.