mcpField
M
msbuild-server

msbuild-server

github.com/dotnet开发5.8k1.5k 次安装1 天前更新
代码仓库

关于 msbuild-server

msbuild-server 面向反复运行 .NET 命令行构建的开发者,指导启用 MSBuild Server 缓存评估结果,并通过连续构建检查效果、在排查时关闭服务器。

主要功能

  1. 01启用 MSBuild Server
  2. 02按 Shell 设置环境变量
  3. 03比较连续构建耗时
  4. 04排查问题时关闭服务器

适用场景

  1. 01加快反复进行的增量命令行构建
  2. 02在 CI 中连续执行多次构建
  3. 03排查启用服务器后的构建问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dotnet/skills --skill msbuild-server

安装后在 Claude Code 中输入/msbuild-server确认已加载。

详细介绍

用于 CLI 缓存的 MSBuild Server

使用 MSBuild Server 在 CLI 构建之间缓存评估结果,获得与 Visual Studio 长期运行的 MSBuild 进程相同的性能优势。

适用场景

  • CLI(dotnet build)的小型增量构建速度低于预期
  • 开发者发现,同一项目在 VS 中的构建速度比在 CLI 中更快
  • CI Agent 会对同一代码仓库连续执行多次构建

不适用场景

  • 基于 IDE 的构建(Visual Studio 已使用长期运行的 MSBuild 进程)
  • 可以接受冷启动开销的一次性构建
  • 怀疑存在构建正确性问题(禁用服务以隔离问题)

输入

输入必填描述
Shell 上下文否设置环境变量的 Shell(bash、PowerShell 或 Windows 持久环境)

工作流

步骤 1:确认 CLI 上下文

确认开发者是从命令行(dotnet build)而非 Visual Studio 或其他 IDE 进行构建。MSBuild Server 在 IDE 中无法带来任何好处。

步骤 2:设置环境变量
# Bash / CI
export MSBUILDUSESERVER=1

# PowerShell
$env:MSBUILDUSESERVER = "1"

# Windows (persistent)
setx MSBUILDUSESERVER 1
步骤 3:验证性能提升

连续对同一项目执行两次构建,并比较耗时:

  1. 第一次构建(冷启动):dotnet build -- 服务启动,不会获得缓存优势
  2. 第二次构建(热启动):dotnet build -- 速度应明显更快

对于包含许多项目或复杂 Directory.Build.props 链的代码仓库,性能提升最为明显。

验证

  • Shell 中已设置 MSBUILDUSESERVER=1
  • 第二次连续构建比第一次更快
  • 执行 dotnet build-server shutdown 后再重新构建,确认服务能够正常重启

常见问题

问题解决方案
期望 Visual Studio 中也能提升性能VS 已使用长期运行的 MSBuild 节点;该服务不会带来额外好处
启用后出现构建正确性问题运行 dotnet build-server shutdown 进行重置;如果问题仍然存在,请禁用该服务
服务进程占用的内存超出预期服务会在后台持续运行;空闲时使用 dotnet build-server shutdown 将其关闭

评论

支持 Markdown