Dotnet Msbuild
by @dotnet · plugin · 18 skills
Comprehensive MSBuild and .NET build skills: failure diagnosis, performance optimization, code quality, and modernization.
Install the whole plugin (CLI)
npx skillmds add dotnet/msbuild-server
npx skillmds add dotnet/item-management
npx skillmds add dotnet/eval-performance
npx skillmds add dotnet/extension-points
npx skillmds add dotnet/target-authoring
npx skillmds add dotnet/binlog-generation
npx skillmds add dotnet/build-parallelism
npx skillmds add dotnet/incremental-build
npx skillmds add dotnet/property-patterns
npx skillmds add dotnet/build-perf-baseline
npx skillmds add dotnet/check-bin-obj-clash
npx skillmds add dotnet/msbuild-antipatterns
npx skillmds add dotnet/msbuild-modernization
npx skillmds add dotnet/build-perf-diagnostics
npx skillmds add dotnet/binlog-failure-analysis
npx skillmds add dotnet/including-generated-files
npx skillmds add dotnet/resolve-project-references
npx skillmds add dotnet/directory-build-organizationSkills in this plugin
- ▌ msbuild-server · dotnetImprove CLI build performance by enabling MSBuild Server for persistent caching of evaluation results across sequential builds.
- ▌ item-management · dotnetProvides canonical patterns for MSBuild item groups: Include/Remove/Update semantics, item metadata, batching with %(Metadata), transforms, per-item filtering, and cross-product batching pitfalls.
- ▌ eval-performance · dotnetDiagnose and improve MSBuild project evaluation performance by analyzing phases, glob patterns, import chains, and property functions.
- ▌ extension-points · dotnetGuides MSBuild extensibility through CustomBefore/CustomAfter hooks, wildcard imports, import gating, and NuGet package build extension layout.
- ▌ target-authoring · dotnetCanonical patterns for writing custom MSBuild targets, covering the three-level target chain, chain extension, DependsOnTargets vs BeforeTargets vs AfterTargets, Returns vs Outputs, and common pitfalls.
- ▌ binlog-generation · dotnetAdd the /bl switch to MSBuild-based commands to generate binary logs for build diagnostics and performance analysis.
- ▌ build-parallelism · dotnetOptimize MSBuild build parallelism by configuring /maxcpucount, graph build mode, project references, and analyzing binlogs to reduce multi-project solution build times.
- ▌ incremental-build · dotnetDiagnose and fix slow MSBuild incremental builds by identifying why targets re-execute unnecessarily, covering common causes like missing Inputs/Outputs, volatile properties, and FileWrites registration.
- ▌ property-patterns · dotnetProvides canonical MSBuild property definition patterns including conditional defaults, composition, path normalization, target framework detection, and evaluation order for diagnosing and fixing property issues in .props and .csproj files.
- ▌ build-perf-baseline · dotnetMeasure and optimize .NET build performance by establishing baselines, enabling MSBuild Server, using artifacts output, and trimming dependency graphs.
- ▌ check-bin-obj-clash · dotnetDetects MSBuild projects with conflicting OutputPath or IntermediateOutputPath to diagnose build failures.
- ▌ msbuild-antipatterns · dotnet bundleDetects and fixes common MSBuild anti-patterns in .csproj, .vbproj, .fsproj, .props, .targets, and .proj files, covering Exec misuse, unquoted conditions, hardcoded paths, and more.
- ▌ msbuild-modernization · dotnetMigrate legacy MSBuild project files to SDK-style format, reducing .csproj complexity and enabling modern .NET features.
- ▌ build-perf-diagnostics · dotnetDiagnose MSBuild build performance bottlenecks using binary log analysis, covering timeline analysis, performance summary interpretation, and seven common bottleneck categories.
- ▌ binlog-failure-analysis · dotnetDiagnose MSBuild build failures by analyzing .binlog files using an MCP server or text-log replay.
- ▌ including-generated-files · dotnetFix MSBuild targets so generated files are compiled, copied to output, and cleaned properly.
- ▌ resolve-project-references · dotnetPrevents misguided optimization of MSBuild's ResolveProjectReferences target by explaining that its reported time is wall-clock wait time, not CPU work, and redirects to task self-time analysis.
- ▌ directory-build-organization · dotnet bundleOrganize multi-project .NET repos with Directory.Build.props, Directory.Build.targets, Directory.Packages.props, and Directory.Build.rsp for centralized MSBuild settings and NuGet Central Package Management.