Skip to content

Commit

Permalink
Merge pull request #18263 from dotnet/revert-18081-revert-17916-rokon…
Browse files Browse the repository at this point in the history
…ec/msbuild-server-v1

Re-Revert "MSBuild server V1"
  • Loading branch information
dsplaisted committed Jun 14, 2021
2 parents fcc5e7a + 56988ad commit 9e1115c
Showing 1 changed file with 10 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ namespace Microsoft.DotNet.Cli.Utils
internal class MSBuildForwardingAppWithoutLogging
{
private static readonly bool AlwaysExecuteMSBuildOutOfProc = Env.GetEnvironmentVariableAsBool("DOTNET_CLI_RUN_MSBUILD_OUTOFPROC");
private static readonly bool DoNotUseMSBUILDNOINPROCNODE = Env.GetEnvironmentVariableAsBool("DOTNET_CLI_DO_NOT_USE_MSBUILDNOINPROCNODE");

private const string MSBuildExeName = "MSBuild.dll";

Expand Down Expand Up @@ -53,6 +54,13 @@ public MSBuildForwardingAppWithoutLogging(IEnumerable<string> argsToForward, str
_argsToForward = argsToForward;
MSBuildPath = msbuildPath ?? defaultMSBuildPath;

if (!DoNotUseMSBUILDNOINPROCNODE)
{
// Force MSBuild to use external working node long living process for building projects
// We also refers to this as MSBuild Server V1 as entry process forwards most of the work to it.
EnvironmentVariable("MSBUILDNOINPROCNODE", "1");
}

// If DOTNET_CLI_RUN_MSBUILD_OUTOFPROC is set or we're asked to execute a non-default binary, call MSBuild out-of-proc.
if (AlwaysExecuteMSBuildOutOfProc || !string.Equals(MSBuildPath, defaultMSBuildPath, StringComparison.OrdinalIgnoreCase))
{
Expand Down Expand Up @@ -92,6 +100,8 @@ public void EnvironmentVariable(string name, string value)

if (value == string.Empty || value == "\0")
{
// Do not allow MSBuild NOIPROCNODE as null env vars are not properly transferred to build nodes
_msbuildRequiredEnvironmentVariables["MSBUILDNOINPROCNODE"] = "0";
// Unlike ProcessStartInfo.EnvironmentVariables, Environment.SetEnvironmentVariable can't set a variable
// to an empty value, so we just fall back to calling MSBuild out-of-proc if we encounter this case.
// https://github.com/dotnet/runtime/issues/50554
Expand Down

0 comments on commit 9e1115c

Please sign in to comment.