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);
}