Msbuild
This skill provides a practical, **prioritized** set of the **80 most useful command templates** for
- Rating
- 4 (276 reviews)
- Downloads
- 2,234 downloads
- Version
- 1.0.0
Overview
This skill provides a practical, **prioritized** set of the **80 most useful command templates** for working.
Complete Documentation
View Source →Skill: Top 80 MSBuild Commands for .NET / ASP.NET (CLI)
Purpose
This skill provides a practical, prioritized set of the 80 most useful command templates for working with .NET / ASP.NET projects on the command line using MSBuild (viadotnet msbuild or msbuild). It mirrors a realistic day-to-day workflow: restore → build → test → publish/pack → diagnose → CI hardening.Typical ASP.NET Developer Workflow (why these commands are prioritized)
A typical ASP.NET CLI workflow:- Restore dependencies (often locked mode in CI)
- Build quickly (Debug) and reliably (Release)
- Test repeatedly (filters, logs, results dirs, no-build/no-restore in CI)
- Publish artifacts (RID, self-contained, single-file, trimming, ready-to-run)
- Package libraries (Pack), versioning
- Diagnose build issues (binlog, verbosity, preprocess, graph build)
- CI hardening (determinism, CI flags, node reuse, parallelism, reproducibility)
Conventions
- Prefer cross-platform:
dotnet msbuild - On Windows with VS Build Tools you can swap to:
msbuild - Targets:
/t: - Properties:
/p:Name=Value - Logging:
/v:,/bl[:file],/fl,/pp - Multiproc:
/m[:n] - Note:
dotnet testis included because it is the practical test CLI (it invokes MSBuild under the hood).
Top 80 Commands (1 = most important)
ReplaceMySolution.sln/src/MyWeb/MyWeb.csproj/tests/...as needed.
A) Restore / Build / Clean / Rebuild (daily)
1) Restore solutiondotnet msbuild MySolution.sln /t:Restore
2) Build solution (Debug)
dotnet msbuild MySolution.sln /t:Build /p:Configuration=Debug
3) Build solution (Release)
dotnet msbuild MySolution.sln /t:Build /p:Configuration=Release
4) Clean solution
dotnet msbuild MySolution.sln /t:Clean /p:Configuration=Debug
5) Rebuild solution (Clean + Build)
dotnet msbuild MySolution.sln /t:Rebuild /p:Configuration=Release
6) Restore + Build in one call
dotnet msbuild MySolution.sln /restore /t:Build /p:Configuration=Debug
7) Build without restore (CI-friendly)
dotnet msbuild MySolution.sln /t:Build /p:Configuration=Release /p:Restore=false
8) Parallel build (max CPU)
dotnet msbuild MySolution.sln /t:Build /m /p:Configuration=Release
9) Quiet-ish CI output
dotnet msbuild MySolution.sln /t:Build /nologo /v:minimal /p:Configuration=Release
10) Build a single project
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Build /p:Configuration=Debug
11) Set Platform explicitly
dotnet msbuild MySolution.sln /t:Build /p:Configuration=Release /p:Platform="Any CPU"
12) Treat warnings as errors
dotnet msbuild MySolution.sln /t:Build /p:Configuration=Release /p:TreatWarningsAsErrors=true
13) Deterministic build
dotnet msbuild MySolution.sln /t:Build /p:Configuration=Release /p:Deterministic=true
14) CI build mode (SourceLink/versioning behavior)
dotnet msbuild MySolution.sln /t:Build /p:Configuration=Release /p:ContinuousIntegrationBuild=true
15) Disable incremental up-to-date checks (force build behavior)
dotnet msbuild MySolution.sln /t:Build /p:Configuration=Release /p:DisableFastUpToDateCheck=true
16) Build with defined constants
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Build /p:Configuration=Debug /p:DefineConstants="TRACE;DEBUG;MYFLAG"
17) Set OutputPath (ad-hoc artifacts)
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Build /p:Configuration=Release /p:OutputPath=artifacts/bin/
18) Set BaseIntermediateOutputPath (obj isolation / CI caching)
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Build /p:Configuration=Release /p:BaseIntermediateOutputPath=artifacts/obj/
19) Disable shared compilation (debug odd build behavior)
dotnet msbuild MySolution.sln /t:Build /p:Configuration=Debug /p:UseSharedCompilation=false
20) Show MSBuild version
dotnet msbuild -version
B) Tests (practical CLI; MSBuild-based)
21) Run tests (solution)
dotnet test MySolution.sln -c Release
22) Tests without build
dotnet test MySolution.sln -c Release --no-build
23) Tests without restore
dotnet test MySolution.sln -c Release --no-restore
24) Test a single test project
dotnet test tests/MyWeb.Tests/MyWeb.Tests.csproj -c Debug
25) Test filter by fully qualified name
dotnet test MySolution.sln -c Release --filter "FullyQualifiedName~MyNamespace"
26) Test filter by trait/category (example)
dotnet test MySolution.sln -c Release --filter "TestCategory=Integration"
27) TRX logger
dotnet test MySolution.sln -c Release --logger "trx"
28) Results directory
dotnet test MySolution.sln -c Release --results-directory artifacts/testresults
29) Collect coverage (cross-platform collector)
dotnet test MySolution.sln -c Release --collect "XPlat Code Coverage"
30) Increase test verbosity
dotnet test MySolution.sln -c Release -v normal
31) Blame/hang diagnostics
dotnet test MySolution.sln -c Release --blame
32) Run a specific test by name
dotnet test MySolution.sln -c Release --filter "Name=MySpecificTest"
C) Publish (ASP.NET core scenarios)
33) Publish (Release, framework-dependent)
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release
34) Publish to a specific directory
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:PublishDir=artifacts/publish/
35) Publish with RuntimeIdentifier (RID)
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:RuntimeIdentifier=linux-x64
36) Self-contained publish
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:RuntimeIdentifier=linux-x64 /p:SelfContained=true
37) Framework-dependent (explicit)
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:SelfContained=false
38) Single-file publish
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:RuntimeIdentifier=win-x64 /p:PublishSingleFile=true
39) ReadyToRun publish
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:PublishReadyToRun=true
40) Trim publish (use with care)
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:PublishTrimmed=true
41) Single-file + trim (advanced)
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:RuntimeIdentifier=linux-x64 /p:PublishSingleFile=true /p:PublishTrimmed=true
42) Stamp environment property (pattern; app must use it)
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:EnvironmentName=Production
43) Publish with version stamping
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:Version=1.2.3
44) Publish with explicit TargetFramework (multi-TFM projects)
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:TargetFramework=net8.0
45) Publish with CI properties
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:ContinuousIntegrationBuild=true /p:Deterministic=true
46) Publish: RID + self-contained + output
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:RuntimeIdentifier=linux-x64 /p:SelfContained=true /p:PublishDir=artifacts/publish/linux-x64/
D) Pack / NuGet / Versioning
47) Pack a library
dotnet msbuild src/MyLib/MyLib.csproj /t:Pack /p:Configuration=Release
48) Pack to a custom output path
dotnet msbuild src/MyLib/MyLib.csproj /t:Pack /p:Configuration=Release /p:PackageOutputPath=artifacts/nuget/
49) Pack with version
dotnet msbuild src/MyLib/MyLib.csproj /t:Pack /p:Configuration=Release /p:Version=1.2.3
50) Set AssemblyVersion / FileVersion
dotnet msbuild src/MyLib/MyLib.csproj /t:Build /p:Configuration=Release /p:AssemblyVersion=1.2.0.0 /p:FileVersion=1.2.3.0
51) InformationalVersion (commit metadata)
dotnet msbuild src/MyLib/MyLib.csproj /t:Build /p:Configuration=Release /p:InformationalVersion=1.2.3+sha.abcdef
52) Restore generating packages.lock.json
dotnet msbuild MySolution.sln /t:Restore /p:RestorePackagesWithLockFile=true
53) Restore locked mode (fail if lock changes)
dotnet msbuild MySolution.sln /t:Restore /p:RestoreLockedMode=true
54) Restore using a custom NuGet.config
dotnet msbuild MySolution.sln /t:Restore /p:RestoreConfigFile=NuGet.config
55) Restore with custom packages folder (CI cache)
dotnet msbuild MySolution.sln /t:Restore /p:RestorePackagesPath=artifacts/nuget-packages
E) Diagnostics / Troubleshooting
56) Binary log (binlog) — best first step
dotnet msbuild MySolution.sln /t:Build /p:Configuration=Release /bl
57) Binlog with specific path
dotnet msbuild MySolution.sln /t:Build /p:Configuration=Release /bl:artifacts/logs/build.binlog
58) Verbosity: detailed
dotnet msbuild MySolution.sln /t:Build /v:detailed
59) Verbosity: diagnostic (only when needed)
dotnet msbuild MySolution.sln /t:Build /v:diag
60) File logger (text log)
dotnet msbuild MySolution.sln /t:Build /fl /flp:logfile=artifacts/logs/build.log;verbosity=normal
61) Console logger summary + performance
dotnet msbuild MySolution.sln /t:Build /clp:Summary;PerformanceSummary
62) Preprocess project (expanded after imports)
dotnet msbuild src/MyWeb/MyWeb.csproj /pp:artifacts/logs/preprocessed.xml
63) Graph build for solutions
dotnet msbuild MySolution.sln /t:Build /graphBuild /p:Configuration=Release
64) Run a single target explicitly (example: Clean)
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Clean /p:Configuration=Release
65) Show command lines (helps reproduce compiler invocation)
dotnet msbuild MySolution.sln /t:Build /m /v:minimal /clp:ShowCommandLine
66) Disable node reuse (CI stability)
dotnet msbuild MySolution.sln /t:Build /nr:false /p:Configuration=Release
67) Limit parallelism
dotnet msbuild MySolution.sln /t:Build /m:4 /p:Configuration=Release
F) Advanced build controls
68) Generic custom property pattern
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Build /p:Configuration=Release /p:MyCustomProperty=Value
69) Override restore sources (quick feed test)
dotnet msbuild MySolution.sln /t:Restore /p:RestoreSources="https://api.nuget.org/v3/index.json;https://myfeed/v3/index.json"
70) Disable implicit restore (full control)
dotnet msbuild MySolution.sln /t:Build /p:Restore=false /p:BuildProjectReferences=true
71) Build without project references (debugging)
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Build /p:BuildProjectReferences=false
72) Publish using apphost (common for exe-style hosting)
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:RuntimeIdentifier=linux-x64 /p:SelfContained=true /p:UseAppHost=true
73) Publish without apphost (edge cases)
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:UseAppHost=false
74) Restore with interactive auth (private feeds)
dotnet msbuild MySolution.sln /t:Restore /p:NuGetInteractive=true
75) Override MSBuild SDKs path (rare edge cases)
dotnet msbuild MySolution.sln /t:Build /p:MSBuildSDKsPath=/path/to/sdks
G) msbuild.exe variants (Windows / VS Build Tools)
76) Build solution with msbuild.exe
msbuild MySolution.sln /t:Build /p:Configuration=Release /m
77) Restore with msbuild.exe
msbuild MySolution.sln /t:Restore
78) Publish with msbuild.exe
msbuild src\MyWeb\MyWeb.csproj /t:Publish /p:Configuration=Release /p:PublishDir=artifacts\publish\
79) Binlog with msbuild.exe
msbuild MySolution.sln /t:Build /p:Configuration=Release /bl:artifacts\logs\msbuild.binlog
80) Preprocess with msbuild.exe
msbuild src\MyWeb\MyWeb.csproj /pp:artifacts\logs\preprocessed.xml
*
How to use this skill
When you describe a goal (e.g., “Publish linux-x64 self-contained single-file”), the skill should output:
- the top 3 relevant commands from this list,
- the few MSBuild properties that matter most,
- and one diagnostic command (usually
/bl) to capture a binlog if something fails.
Caveats
- Trim/ReadyToRun/SingleFile can have app-specific implications.
- For build issues: rerun with
/bland inspect with MSBuild Structured Log Viewer.
Installation
openclaw install msbuild
💻Code Examples
dotnet msbuild -version
### B) Tests (practical CLI; MSBuild-based)
21) Run tests (solution)dotnet test MySolution.sln -c Release --filter "Name=MySpecificTest"
### C) Publish (ASP.NET core scenarios)
33) Publish (Release, framework-dependent)dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:RuntimeIdentifier=linux-x64 /p:SelfContained=true /p:PublishDir=artifacts/publish/linux-x64/
### D) Pack / NuGet / Versioning
47) Pack a librarydotnet msbuild MySolution.sln /t:Restore /p:RestorePackagesPath=artifacts/nuget-packages
### E) Diagnostics / Troubleshooting
56) Binary log (binlog) — best first stepdotnet msbuild MySolution.sln /t:Build /m:4 /p:Configuration=Release
### F) Advanced build controls
68) Generic custom property patterndotnet msbuild MySolution.sln /t:Build /p:MSBuildSDKsPath=/path/to/sdks
### G) msbuild.exe variants (Windows / VS Build Tools)
76) Build solution with msbuild.exeTags
Quick Info
Ready to Install?
Get started with this skill in seconds
Related Skills
4claw
4claw — a moderated imageboard for AI agents.
Aap Passport
Agent Attestation Protocol - The Reverse Turing Test.
Acestep Lyrics Transcription
Transcribe audio to timestamped lyrics using OpenAI Whisper or ElevenLabs Scribe API.
Adaptive Suite
A continuously adaptive skill suite that empowers Clawdbot.