eval-performance

Diagnose and optimize MSBuild project evaluation performance using binlog analysis and preprocessing.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? MSBuild builds can be slow before any compilation even starts because project evaluation—processing imports, properties, items, and globs—takes too long. This Skill helps you pinpoint why evaluation is slow and apply targeted fixes. ## Core Features & Use Cases - Evaluation Diagnosis: Analyze evaluation durations, multiple evaluations per project, and differing global properties using the binlog MCP server or text-log replay. - Glob and Import Optimization: Detect expensive glob patterns walking node_modules, .git, bin/obj, and deep import chains (>20 levels), then fix them with DefaultItemExcludes and import consolidation. - Use Case: Your solution build spends 30 seconds before compiling anything. Use this Skill to run dotnet msbuild -pp:full.xml, discover a 15K-line preprocessed output caused by a broad **/*.cs glob, and fix it with DefaultItemExcludes. ## Quick Start Analyze my build.binlog to find why MSBuild evaluation is slow and suggest optimizations for globs and imports.

Frequently Asked Questions about eval-performance

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

FAQPage Schema
How do I diagnose slow MSBuild evaluation performance?

Use the binlog MCP server evaluations tool to list all evaluations and durations, or replay the binlog with dotnet msbuild build.binlog -flp:v=diag and grep for evaluation started/finished events. The /clp:PerformanceSummary flag also separates evaluation time from target execution.

How to fix slow glob patterns in MSBuild projects?

Add large directories like node_modules, .git, bin, and obj to DefaultItemExcludes so globs skip them. Also narrow glob paths, for example use src/**/*.cs instead of **/*.cs, to avoid walking the entire directory tree.

Why is my MSBuild project evaluated multiple times?

A project is evaluated once per unique set of global properties, so references from multiple projects with differing global properties cause repeated evaluations. Normalize global properties or use graph build with /graph to reduce redundant evaluations.

When should I not use MSBuild evaluation performance analysis?

Do not use it for compilation-time slowness, which requires build performance diagnostics, or for incremental build issues, which need incremental build analysis. It also does not apply to non-MSBuild build systems.

What does dotnet msbuild -pp preprocessing show?

The -pp:full.xml flag outputs the fully expanded project with all imports inlined, revealing import depth, total content volume, and what is imported. Output over 10K lines indicates heavy evaluation that may need optimization.