← Back to Skills Marketplace
thecybercore

MSBuild Top 80 Commands

by TCC · GitHub ↗ · v1.0.0
cross-platform ✓ Security Clean
686
Downloads
0
Stars
1
Active Installs
1
Versions
Install in OpenClaw
/install msbuild
Description
Provides a prioritized set of 80 essential MSBuild CLI commands for restoring, building, testing, publishing, packaging, diagnosing, and CI-hardening .NET/AS...
README (SKILL.md)

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 (via dotnet 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:

  1. Restore dependencies (often locked mode in CI)
  2. Build quickly (Debug) and reliably (Release)
  3. Test repeatedly (filters, logs, results dirs, no-build/no-restore in CI)
  4. Publish artifacts (RID, self-contained, single-file, trimming, ready-to-run)
  5. Package libraries (Pack), versioning
  6. Diagnose build issues (binlog, verbosity, preprocess, graph build)
  7. CI hardening (determinism, CI flags, node reuse, parallelism, reproducibility)

Ranking reflects frequency + impact in that flow.

Conventions

  • Prefer cross-platform: dotnet msbuild
  • On Windows with VS Build Tools you can swap to: msbuild
  • Targets: /t:\x3CTarget>
  • Properties: /p:Name=Value
  • Logging: /v:\x3Clevel>, /bl[:file], /fl, /pp
  • Multiproc: /m[:n]
  • Note: dotnet test is included because it is the practical test CLI (it invokes MSBuild under the hood).

Top 80 Commands (1 = most important)

Replace MySolution.sln / src/MyWeb/MyWeb.csproj / tests/... as needed.

A) Restore / Build / Clean / Rebuild (daily)

  1. Restore solution
dotnet msbuild MySolution.sln /t:Restore
  1. Build solution (Debug)
dotnet msbuild MySolution.sln /t:Build /p:Configuration=Debug
  1. Build solution (Release)
dotnet msbuild MySolution.sln /t:Build /p:Configuration=Release
  1. Clean solution
dotnet msbuild MySolution.sln /t:Clean /p:Configuration=Debug
  1. Rebuild solution (Clean + Build)
dotnet msbuild MySolution.sln /t:Rebuild /p:Configuration=Release
  1. Restore + Build in one call
dotnet msbuild MySolution.sln /restore /t:Build /p:Configuration=Debug
  1. Build without restore (CI-friendly)
dotnet msbuild MySolution.sln /t:Build /p:Configuration=Release /p:Restore=false
  1. Parallel build (max CPU)
dotnet msbuild MySolution.sln /t:Build /m /p:Configuration=Release
  1. Quiet-ish CI output
dotnet msbuild MySolution.sln /t:Build /nologo /v:minimal /p:Configuration=Release
  1. Build a single project
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Build /p:Configuration=Debug
  1. Set Platform explicitly
dotnet msbuild MySolution.sln /t:Build /p:Configuration=Release /p:Platform="Any CPU"
  1. Treat warnings as errors
dotnet msbuild MySolution.sln /t:Build /p:Configuration=Release /p:TreatWarningsAsErrors=true
  1. Deterministic build
dotnet msbuild MySolution.sln /t:Build /p:Configuration=Release /p:Deterministic=true
  1. CI build mode (SourceLink/versioning behavior)
dotnet msbuild MySolution.sln /t:Build /p:Configuration=Release /p:ContinuousIntegrationBuild=true
  1. Disable incremental up-to-date checks (force build behavior)
dotnet msbuild MySolution.sln /t:Build /p:Configuration=Release /p:DisableFastUpToDateCheck=true
  1. Build with defined constants
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Build /p:Configuration=Debug /p:DefineConstants="TRACE;DEBUG;MYFLAG"
  1. Set OutputPath (ad-hoc artifacts)
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Build /p:Configuration=Release /p:OutputPath=artifacts/bin/
  1. Set BaseIntermediateOutputPath (obj isolation / CI caching)
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Build /p:Configuration=Release /p:BaseIntermediateOutputPath=artifacts/obj/
  1. Disable shared compilation (debug odd build behavior)
dotnet msbuild MySolution.sln /t:Build /p:Configuration=Debug /p:UseSharedCompilation=false
  1. Show MSBuild version
dotnet msbuild -version

B) Tests (practical CLI; MSBuild-based)

  1. Run tests (solution)
dotnet test MySolution.sln -c Release
  1. Tests without build
dotnet test MySolution.sln -c Release --no-build
  1. Tests without restore
dotnet test MySolution.sln -c Release --no-restore
  1. Test a single test project
dotnet test tests/MyWeb.Tests/MyWeb.Tests.csproj -c Debug
  1. Test filter by fully qualified name
dotnet test MySolution.sln -c Release --filter "FullyQualifiedName~MyNamespace"
  1. Test filter by trait/category (example)
dotnet test MySolution.sln -c Release --filter "TestCategory=Integration"
  1. TRX logger
dotnet test MySolution.sln -c Release --logger "trx"
  1. Results directory
dotnet test MySolution.sln -c Release --results-directory artifacts/testresults
  1. Collect coverage (cross-platform collector)
dotnet test MySolution.sln -c Release --collect "XPlat Code Coverage"
  1. Increase test verbosity
dotnet test MySolution.sln -c Release -v normal
  1. Blame/hang diagnostics
dotnet test MySolution.sln -c Release --blame
  1. Run a specific test by name
dotnet test MySolution.sln -c Release --filter "Name=MySpecificTest"

C) Publish (ASP.NET core scenarios)

  1. Publish (Release, framework-dependent)
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release
  1. Publish to a specific directory
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:PublishDir=artifacts/publish/
  1. Publish with RuntimeIdentifier (RID)
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:RuntimeIdentifier=linux-x64
  1. Self-contained publish
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:RuntimeIdentifier=linux-x64 /p:SelfContained=true
  1. Framework-dependent (explicit)
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:SelfContained=false
  1. Single-file publish
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:RuntimeIdentifier=win-x64 /p:PublishSingleFile=true
  1. ReadyToRun publish
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:PublishReadyToRun=true
  1. Trim publish (use with care)
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:PublishTrimmed=true
  1. 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
  1. Stamp environment property (pattern; app must use it)
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:EnvironmentName=Production
  1. Publish with version stamping
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:Version=1.2.3
  1. Publish with explicit TargetFramework (multi-TFM projects)
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:TargetFramework=net8.0
  1. Publish with CI properties
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:ContinuousIntegrationBuild=true /p:Deterministic=true
  1. 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

  1. Pack a library
dotnet msbuild src/MyLib/MyLib.csproj /t:Pack /p:Configuration=Release
  1. Pack to a custom output path
dotnet msbuild src/MyLib/MyLib.csproj /t:Pack /p:Configuration=Release /p:PackageOutputPath=artifacts/nuget/
  1. Pack with version
dotnet msbuild src/MyLib/MyLib.csproj /t:Pack /p:Configuration=Release /p:Version=1.2.3
  1. 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
  1. InformationalVersion (commit metadata)
dotnet msbuild src/MyLib/MyLib.csproj /t:Build /p:Configuration=Release /p:InformationalVersion=1.2.3+sha.abcdef
  1. Restore generating packages.lock.json
dotnet msbuild MySolution.sln /t:Restore /p:RestorePackagesWithLockFile=true
  1. Restore locked mode (fail if lock changes)
dotnet msbuild MySolution.sln /t:Restore /p:RestoreLockedMode=true
  1. Restore using a custom NuGet.config
dotnet msbuild MySolution.sln /t:Restore /p:RestoreConfigFile=NuGet.config
  1. Restore with custom packages folder (CI cache)
dotnet msbuild MySolution.sln /t:Restore /p:RestorePackagesPath=artifacts/nuget-packages

E) Diagnostics / Troubleshooting

  1. Binary log (binlog) — best first step
dotnet msbuild MySolution.sln /t:Build /p:Configuration=Release /bl
  1. Binlog with specific path
dotnet msbuild MySolution.sln /t:Build /p:Configuration=Release /bl:artifacts/logs/build.binlog
  1. Verbosity: detailed
dotnet msbuild MySolution.sln /t:Build /v:detailed
  1. Verbosity: diagnostic (only when needed)
dotnet msbuild MySolution.sln /t:Build /v:diag
  1. File logger (text log)
dotnet msbuild MySolution.sln /t:Build /fl /flp:logfile=artifacts/logs/build.log;verbosity=normal
  1. Console logger summary + performance
dotnet msbuild MySolution.sln /t:Build /clp:Summary;PerformanceSummary
  1. Preprocess project (expanded after imports)
dotnet msbuild src/MyWeb/MyWeb.csproj /pp:artifacts/logs/preprocessed.xml
  1. Graph build for solutions
dotnet msbuild MySolution.sln /t:Build /graphBuild /p:Configuration=Release
  1. Run a single target explicitly (example: Clean)
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Clean /p:Configuration=Release
  1. Show command lines (helps reproduce compiler invocation)
dotnet msbuild MySolution.sln /t:Build /m /v:minimal /clp:ShowCommandLine
  1. Disable node reuse (CI stability)
dotnet msbuild MySolution.sln /t:Build /nr:false /p:Configuration=Release
  1. Limit parallelism
dotnet msbuild MySolution.sln /t:Build /m:4 /p:Configuration=Release

F) Advanced build controls

  1. Generic custom property pattern
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Build /p:Configuration=Release /p:MyCustomProperty=Value
  1. 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"
  1. Disable implicit restore (full control)
dotnet msbuild MySolution.sln /t:Build /p:Restore=false /p:BuildProjectReferences=true
  1. Build without project references (debugging)
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Build /p:BuildProjectReferences=false
  1. 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
  1. Publish without apphost (edge cases)
dotnet msbuild src/MyWeb/MyWeb.csproj /t:Publish /p:Configuration=Release /p:UseAppHost=false
  1. Restore with interactive auth (private feeds)
dotnet msbuild MySolution.sln /t:Restore /p:NuGetInteractive=true
  1. 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)

  1. Build solution with msbuild.exe
msbuild MySolution.sln /t:Build /p:Configuration=Release /m
  1. Restore with msbuild.exe
msbuild MySolution.sln /t:Restore
  1. Publish with msbuild.exe
msbuild src\MyWeb\MyWeb.csproj /t:Publish /p:Configuration=Release /p:PublishDir=artifacts\publish\
  1. Binlog with msbuild.exe
msbuild MySolution.sln /t:Build /p:Configuration=Release /bl:artifacts\logs\msbuild.binlog
  1. 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 /bl and inspect with MSBuild Structured Log Viewer.
Usage Guidance
This skill is instruction-only and appears coherent for its stated purpose. Before running any of the example commands on your machine: ensure you have dotnet/msbuild installed, inspect the exact command and target paths, and avoid running build/test/publish commands against untrusted repositories because MSBuild targets or test hooks in project files can execute arbitrary code during a build. If you want to prevent accidental execution, copy the commands for offline review rather than allowing an agent to run them autonomously.
Capability Analysis
Type: OpenClaw Skill Name: msbuild Version: 1.0.0 The skill bundle provides a comprehensive list of standard `dotnet msbuild` and `msbuild` commands for .NET/ASP.NET development workflows. All commands are legitimate operations for building, testing, publishing, and diagnosing .NET projects. The `SKILL.md` instructions for the AI agent are benign, guiding it to retrieve and present relevant commands and properties from the list, without any attempt at prompt injection, data exfiltration, or unauthorized actions. No malicious indicators, obfuscation, or risky capabilities beyond the scope of standard development tools were found across any of the files.
Capability Assessment
Purpose & Capability
The manifest and SKILL.md both describe MSBuild / dotnet CLI command templates. There are no unexpected environment variables, binaries, or external services required that don't match the described purpose.
Instruction Scope
SKILL.md contains only command examples and guidance for building, testing, publishing, and diagnosing .NET projects. It does not instruct reading unrelated files, exfiltrating data, or calling external endpoints. Note: executing the provided build/test commands against untrusted projects can run MSBuild targets defined in those projects, which may execute arbitrary tasks on the host—this is an operational caution, not an incoherence.
Install Mechanism
No install spec or code files are included (instruction-only). Nothing is downloaded or written to disk by the skill itself.
Credentials
The skill requires no environment variables, credentials, or config paths. This is proportionate for a collection of CLI command templates.
Persistence & Privilege
always is false and the skill does not request persistent/system-wide changes. Autonomous invocation is allowed by default on the platform but this skill's instructions are benign templates; still, any agent-run command would run in the user's environment.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install msbuild
  3. After installation, invoke the skill by name or use /msbuild
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial Version
Metadata
Slug msbuild
Version 1.0.0
License
All-time Installs 1
Active Installs 1
Total Versions 1
Frequently Asked Questions

What is MSBuild Top 80 Commands?

Provides a prioritized set of 80 essential MSBuild CLI commands for restoring, building, testing, publishing, packaging, diagnosing, and CI-hardening .NET/AS... It is an AI Agent Skill for Claude Code / OpenClaw, with 686 downloads so far.

How do I install MSBuild Top 80 Commands?

Run "/install msbuild" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is MSBuild Top 80 Commands free?

Yes, MSBuild Top 80 Commands is completely free (open-source). You can download, install and use it at no cost.

Which platforms does MSBuild Top 80 Commands support?

MSBuild Top 80 Commands is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created MSBuild Top 80 Commands?

It is built and maintained by TCC (@thecybercore); the current version is v1.0.0.

💬 Comments