diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets
index 97e4c5348de2..9f0f3032b69b 100644
--- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets
+++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets
@@ -22,8 +22,12 @@ Copyright (c) .NET Foundation. All rights reserved.
+
+
+ Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' And '$(TargetPlatformIdentifier)' == 'Windows'
+ And ('$(Language)' != 'C++' Or '$(IncludeWindowsSDKRefFrameworkReferences)' == 'true')">
diff --git a/test/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildACppCliProject.cs b/test/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildACppCliProject.cs
index 003bf7113278..be05a5d88d31 100644
--- a/test/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildACppCliProject.cs
+++ b/test/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildACppCliProject.cs
@@ -54,16 +54,32 @@ public void It_builds_and_runs_with_package_reference()
var testAsset = _testAssetsManager
.CopyTestAsset("NetCoreCsharpAppReferenceCppCliLib")
.WithSource()
- .WithProjectChanges((projectPath, project) => ConfigureProject(projectPath, project, targetFramework, new string[] { "_EnablePackageReferencesInVCProjects", "IncludeWindowsSDKRefFrameworkReferences" }));
+ .WithProjectChanges((projectPath, project) =>
+ {
+ ConfigureProject(projectPath, project, targetFramework, new string[] { "_EnablePackageReferencesInVCProjects", "IncludeWindowsSDKRefFrameworkReferences" });
+
+ var ns = project.Root.Name.Namespace;
+ // Use project-specific global packages folder so we can check what was downloaded
+ project.Root.Element(ns + "PropertyGroup")
+ .Add(new XElement(ns + "RestorePackagesPath", @"$(MSBuildProjectDirectory)\packages"));
+
+ });
new BuildCommand(testAsset, "NETCoreCppCliTest")
- .Execute("-p:Platform=x64")
+ .WithWorkingDirectory(testAsset.TestRoot)
+ .Execute("-p:Platform=x64", "/bl")
.Should()
.Pass();
var cppnProjProperties = GetPropertyValues(testAsset.TestRoot, "NETCoreCppCliTest", targetFramework: targetFramework);
Assert.True(cppnProjProperties["_EnablePackageReferencesInVCProjects"] == "true");
Assert.True(cppnProjProperties["IncludeWindowsSDKRefFrameworkReferences"] == "");
+
+ var packagesFolder = Path.Combine(testAsset.TestRoot, "NETCoreCppCliTest", "packages");
+ if (Directory.Exists(packagesFolder))
+ {
+ new DirectoryInfo(packagesFolder).Should().NotHaveSubDirectories("microsoft.windows.sdk.net.ref");
+ }
}
[FullMSBuildOnlyFact]