diff --git a/eng/build.ps1 b/eng/build.ps1 index f642b35f228900..85f6f45b4af723 100644 --- a/eng/build.ps1 +++ b/eng/build.ps1 @@ -262,6 +262,16 @@ if ($vs) { # Disable .NET runtime signature validation errors which errors for local builds $env:VSDebugger_ValidateDotnetDebugLibSignatures=0; + # MSBuild Server dogfood. + if ($env:DOTNET_CLI_USE_MSBUILD_SERVER -eq $null) + { + $env:DOTNET_CLI_USE_MSBUILD_SERVER = 1 + } + if ($env:MSBUILDUSESERVER -eq $null) + { + $env:MSBUILDUSESERVER = 1 + } + # Respect the RuntimeConfiguration variable for building inside VS with different runtime configurations if ($runtimeConfiguration) { diff --git a/eng/build.sh b/eng/build.sh index 2a79304978faae..b71343c8a20b5e 100755 --- a/eng/build.sh +++ b/eng/build.sh @@ -14,6 +14,10 @@ while [[ -h "$source" ]]; do done scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" +# MSBuild Server dogfood. +export MSBUILDUSESERVER="${MSBUILDUSESERVER:-1}" +export DOTNET_CLI_USE_MSBUILD_SERVER="${DOTNET_CLI_USE_MSBUILD_SERVER:-1}" + usage() { echo "Common settings:" diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index d76f7075d72f8a..ca80d638a44d6e 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -81,6 +81,10 @@ jobs: - ${{ format('build_{0}{1}_{2}_{3}_{4}', parameters.osGroup, parameters.osSubgroup, parameters.archType, coalesce(globalBuild.buildConfig, parameters.buildConfig), globalBuild.nameSuffix) }} variables: + - name: "MSBUILDUSESERVER" + value: "1" + - name: "DOTNET_CLI_USE_MSBUILD_SERVER" + value: "1" - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - group: DotNet-HelixApi-Access - group: AzureDevOps-Artifact-Feeds-Pats diff --git a/eng/pipelines/common/templates/global-build-step.yml b/eng/pipelines/common/templates/global-build-step.yml index 983e27c7422c8e..e2cc704facde1f 100644 --- a/eng/pipelines/common/templates/global-build-step.yml +++ b/eng/pipelines/common/templates/global-build-step.yml @@ -12,6 +12,9 @@ parameters: steps: - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -ci ${{ parameters.archParameter }} $(_osParameter) ${{ parameters.crossArg }} ${{ parameters.buildArgs }} ${{ parameters.targetCxxLibraryConfigurationArgs }} $(_officialBuildParameter) $(_overrideTestScriptWindowsCmdParameter) displayName: ${{ parameters.displayName }} + env: + MSBUILDUSESERVER: '1' + DOTNET_CLI_USE_MSBUILD_SERVER: '1' ${{ if eq(parameters.useContinueOnErrorDuringBuild, true) }}: continueOnError: ${{ parameters.shouldContinueOnError }} ${{ if ne(parameters.container, '') }}: diff --git a/eng/pipelines/global-build.yml b/eng/pipelines/global-build.yml index 3739929fbb9f7c..3e0c4f6d11cc79 100644 --- a/eng/pipelines/global-build.yml +++ b/eng/pipelines/global-build.yml @@ -60,6 +60,9 @@ extends: eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), eq(variables['isRollingBuild'], true)) + env: + MSBUILDUSESERVER: 1 + DOTNET_CLI_USE_MSBUILD_SERVER: 1 # # Build with RuntimeFlavor only. This exercise code paths where only RuntimeFlavor is