diff --git a/src/Build/BackEnd/Components/RequestBuilder/RequestBuilder.cs b/src/Build/BackEnd/Components/RequestBuilder/RequestBuilder.cs index 5e2cac8e282..e7d4a95eb4d 100644 --- a/src/Build/BackEnd/Components/RequestBuilder/RequestBuilder.cs +++ b/src/Build/BackEnd/Components/RequestBuilder/RequestBuilder.cs @@ -30,6 +30,8 @@ namespace Microsoft.Build.BackEnd /// internal class RequestBuilder : IRequestBuilder, IRequestBuilderCallback, IBuildComponent { + private const string BuildXLAugmentedManifestHandle = "BUILDXL_AUGMENTED_MANIFEST_HANDLE"; + /// /// The dedicated scheduler object. /// @@ -1289,7 +1291,10 @@ private void ClearVariablesNotInEnvironment(IDictionary savedEnv { foreach (KeyValuePair entry in currentEnvironment) { - if (!savedEnvironment.ContainsKey(entry.Key)) + // TODO: The BuildXLAugmentedManifestHandle condition is necessary to ensure the + // BuildXLAugmentedManifestHandle environment variable is set when file accesses are reported + // by the VBCSCompilerLogger. Remove it once Roslyn natively reports file accesses to MSBuild. + if (!savedEnvironment.ContainsKey(entry.Key) && !entry.Key.Equals(BuildXLAugmentedManifestHandle)) { Environment.SetEnvironmentVariable(entry.Key, null); }