Goal
Validate that MSBuild server works correctly across the partner repos below. For each repo run the three scenarios listed under Required steps and capture the hard evidence described under Hard evidence. If anything fails, file a follow-up comment on this issue with a specific reproduction and the error output.
Required steps (run for each repo)
For each repo, perform all three of the following invocations from the repo root after a clean clone / clean build, and confirm the server process lingers between builds.
-
Freshly built MSBuild (/mt enabled):
$env:MSBUILDUSESERVER=1
$env:DOTNET_CLI_USE_MSBUILD_SERVER=1
dotnet build /mt /bl
Use the dotnet / MSBuild.dll produced by a local build of dotnet/msbuild main.
-
dotnet SDK 11 daily (without /mt):
$env:MSBUILDUSESERVER=1
$env:DOTNET_CLI_USE_MSBUILD_SERVER=1
dotnet build /bl
Install from https://github.com/dotnet/sdk/blob/main/documentation/package-table.md (daily channel).
-
dotnet SDK 10.0.300 (without /mt):
$env:MSBUILDUSESERVER=1
$env:DOTNET_CLI_USE_MSBUILD_SERVER=1
dotnet build /bl
For each scenario verify:
Hard evidence
Before invoking dotnet build, also set:
$env:MSBUILDDEBUGCOMM=1
$env:MSBUILDDEBUGPATH="C:\msbuild-server-logs" # or any writable directory
Then inspect <MSBUILDDEBUGPATH>\MSBuild_NodeMode_<pid>.txt for the following lines:
| Line |
Meaning |
Starting new server node with handshake ... |
a server process started |
Building with MSBuild server with command line ... |
this build was dispatched to the server |
Server was not running. Starting server now. |
client launched the server |
Server is busy, falling back to former behavior. |
client decided to run in-proc |
Server started with PID: <pid> |
the launched server's PID |
A successful first build should show Server was not running. Starting server now. + Starting new server node with handshake ... + Server started with PID: <pid>. A successful second build in the same session should show Building with MSBuild server with command line ... without a new "Starting new server node" line (i.e. the existing server is reused).
Partner repos – dotnet/
Partner repos – high-impact OSS C# projects
Reporting issues
If any of the scenarios above fails (build error, missing log lines, server not lingering, server falling back to in-proc, crash, perf regression), please add a comment on this issue containing:
- Repo + commit SHA tested.
- Which of the three scenarios (freshly built MSBuild
/mt, SDK 11 daily, SDK 10.0.300).
- Exact command line used.
- Relevant excerpt from
MSBuild_NodeMode_<pid>.txt.
- The
.binlog (attach via gist / drag-and-drop) and the console output of the failing command.
Goal
Validate that MSBuild server works correctly across the partner repos below. For each repo run the three scenarios listed under Required steps and capture the hard evidence described under Hard evidence. If anything fails, file a follow-up comment on this issue with a specific reproduction and the error output.
Required steps (run for each repo)
For each repo, perform all three of the following invocations from the repo root after a clean clone / clean build, and confirm the server process lingers between builds.
Freshly built MSBuild (
/mtenabled):Use the
dotnet/MSBuild.dllproduced by a local build of dotnet/msbuildmain.dotnet SDK 11 daily (without
/mt):Install from https://github.com/dotnet/sdk/blob/main/documentation/package-table.md (daily channel).
dotnet SDK 10.0.300 (without
/mt):For each scenario verify:
Get-Process MSBuild/ps).Hard evidence
Before invoking
dotnet build, also set:Then inspect
<MSBUILDDEBUGPATH>\MSBuild_NodeMode_<pid>.txtfor the following lines:Starting new server node with handshake ...Building with MSBuild server with command line ...Server was not running. Starting server now.Server is busy, falling back to former behavior.Server started with PID: <pid>A successful first build should show
Server was not running. Starting server now.+Starting new server node with handshake ...+Server started with PID: <pid>. A successful second build in the same session should showBuilding with MSBuild server with command line ...without a new "Starting new server node" line (i.e. the existing server is reused).Partner repos – dotnet/
Partner repos – high-impact OSS C# projects
Reporting issues
If any of the scenarios above fails (build error, missing log lines, server not lingering, server falling back to in-proc, crash, perf regression), please add a comment on this issue containing:
/mt, SDK 11 daily, SDK 10.0.300).MSBuild_NodeMode_<pid>.txt..binlog(attach via gist / drag-and-drop) and the console output of the failing command.