用途:在修改 MSBuild 源码后,用本地构建的 Bootstrap MSBuild 对复现项目进行验证,确认修复有效后再提交 PR。Bootstrap 是包含本地改动、自带依赖的独立 MSBuild 安装。
主要能力与用法:
- 构建 Bootstrap。Windows 运行 .\build.cmd,Unix/macOS 运行 ./build.sh,产物位于 artifacts\bin\bootstrap\。每次改代码后需重新构建;若后续构建出现文件锁定错误,可运行 ./artifacts/bin/bootstrap/core/dotnet build-server shutdown。
- 运行复现项目。.NET Core/.NET SDK 项目优先直接用 Bootstrap 的 dotnet CLI:Windows 为 artifacts\bin\bootstrap\core\dotnet.exe build <path-to-repro.csproj>,Unix/macOS 为 ./artifacts/bin/bootstrap/core/dotnet build <path-to-repro.csproj>,常规命令行参数(含 -bl 生成 binlog)均可用。.NET Framework 项目在 Windows 上可直接用 artifacts\bin\bootstrap\net472\MSBuild\Current\Bin\MSBuild.exe <path-to-repro.csproj>;该输出仅在 Windows 用 MSBuild.exe 构建时才完整。
适用场景:验证针对 MSBuild 的 bug 修复;区分本地改动与已安装 MSBuild 的行为差异。若复现在 Bootstrap 下正常、在已安装 MSBuild 下失败,说明修复已生效。
限制与排查:改动未反映时,检查 artifacts\bin\bootstrap\core\sdk*\MSBuild.dll 时间戳确认已重建,并关闭残留的 MSBuild 服务进程(可用 ./artifacts/bin/bootstrap/core/dotnet build-server shutdown,或 source msbuild-build-env.ps1 后使用 killdotnet)。.NET Framework Bootstrap 输出依赖 Windows 环境。资料未提供其他平台或收费信息。