← 返回 Skills 市场
thecybercore

MSBuild Top 80 Commands

作者 TCC · GitHub ↗ · v1.0.0
cross-platform ✓ 安全检测通过
686
总下载
0
收藏
1
当前安装
1
版本数
在 OpenClaw 中安装
/install msbuild
功能描述
Provides a prioritized set of 80 essential MSBuild CLI commands for restoring, building, testing, publishing, packaging, diagnosing, and CI-hardening .NET/AS...
使用说明 (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.
安全使用建议
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.
功能分析
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.
能力评估
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.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install msbuild
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /msbuild 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Initial Version
元数据
Slug msbuild
版本 1.0.0
许可证
累计安装 1
当前安装数 1
历史版本数 1
常见问题

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... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 686 次。

如何安装 MSBuild Top 80 Commands?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install msbuild」即可一键安装,无需额外配置。

MSBuild Top 80 Commands 是免费的吗?

是的,MSBuild Top 80 Commands 完全免费(开源免费),可自由下载、安装和使用。

MSBuild Top 80 Commands 支持哪些平台?

MSBuild Top 80 Commands 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 MSBuild Top 80 Commands?

由 TCC(@thecybercore)开发并维护,当前版本 v1.0.0。

💬 留言讨论