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]