diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.TargetFrameworkInference.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.TargetFrameworkInference.targets
index 53840c5495cc..9ef2457e8d0e 100644
--- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.TargetFrameworkInference.targets
+++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.TargetFrameworkInference.targets
@@ -151,6 +151,11 @@ Copyright (c) .NET Foundation. All rights reserved.
/>
+
+ <_EnableDefaultWindowsPlatform Condition="'$(_EnableDefaultWindowsPlatform)' == ''" >false
+ false
+
+
2.1
diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildALibrary.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildALibrary.cs
index 7cb064c0e549..afc5ee86ef29 100644
--- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildALibrary.cs
+++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildALibrary.cs
@@ -394,7 +394,7 @@ public void It_implicitly_defines_compilation_constants_for_the_target_framework
definedConstants.Should().BeEquivalentTo(new[] { "DEBUG", "TRACE" }.Concat(expectedDefines).ToArray());
}
- [Theory]
+ [RequiresMSBuildVersionTheory("16.7.0-preview-20310-07")]
[InlineData("net5.0", new[] { "NETCOREAPP3_1", "NET5_0" })]
[InlineData("net6.0", new[] { "NETCOREAPP3_1", "NET5_0", "NET6_0" })]
public void It_implicitly_defines_compilation_constants_for_the_target_framework_with_backwards_compatibility(string targetFramework, string[] expectedDefines)
@@ -421,7 +421,7 @@ public void It_implicitly_defines_compilation_constants_for_the_target_framework
itemGroup.Add(supportedFramework);
});
- AssertDefinedConstantsOutput(testAsset, targetFramework, new[] { "NETCOREAPP", "NET", "WINDOWS", "WINDOWS7_0" }.Concat(expectedDefines).ToArray());
+ AssertDefinedConstantsOutput(testAsset, targetFramework, new[] { "NETCOREAPP", "NET" }.Concat(expectedDefines).ToArray());
}
[Theory]
@@ -502,6 +502,38 @@ public void It_fails_gracefully_if_targetframework_should_be_targetframeworks(bo
$"The TargetFramework value '{targetFramework}' is not valid. To multi-target, use the 'TargetFrameworks' property instead");
}
+ [RequiresMSBuildVersionTheory("16.7.0-preview-20310-07")]
+ [InlineData("net5.0", false)]
+ [InlineData("netcoreapp3.1", true)]
+ public void It_defines_target_platform_defaults_correctly(string targetFramework, bool defaultsDefined)
+ {
+ TestProject testProject = new TestProject()
+ {
+ Name = "TargetPlatformDefaults",
+ IsSdkProject = true,
+ TargetFrameworks = targetFramework
+ };
+
+ var testAsset = _testAssetsManager.CreateTestProject(testProject);
+
+ var getValuesCommand = new GetValuesCommand(Log, Path.Combine(testAsset.TestRoot, testProject.Name), targetFramework, "TargetPlatformIdentifier");
+ getValuesCommand
+ .Execute()
+ .Should()
+ .Pass();
+
+ var values = getValuesCommand.GetValues();
+ if (defaultsDefined)
+ {
+ values.Count().Should().Be(1);
+ values.FirstOrDefault().Should().Be("Windows");
+ }
+ else
+ {
+ values.Count().Should().Be(0);
+ }
+ }
+
private void TestInvalidTargetFramework(string testName, string targetFramework, bool useSolution, string expectedOutput)
{
var testProject = new TestProject()
diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildALibraryWithVB.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildALibraryWithVB.cs
index c0a899fd4ca4..749d65a16a08 100644
--- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildALibraryWithVB.cs
+++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildALibraryWithVB.cs
@@ -194,14 +194,14 @@ public void It_implicitly_defines_compilation_constants_for_the_configuration(st
definedConstants.Should().BeEquivalentTo(expectedDefines.Concat(new[] { "PLATFORM=\"AnyCPU\"", "NETSTANDARD=-1", "NETSTANDARD1_5=-1" }));
}
- [Theory]
+ [RequiresMSBuildVersionTheory("16.7.0-preview-20310-07")]
[InlineData(".NETStandard,Version=v1.0", new[] { "NETSTANDARD=-1", "NETSTANDARD1_0=-1", "_MyType=\"Empty\"" }, false)]
[InlineData("netstandard1.3", new[] { "NETSTANDARD=-1", "NETSTANDARD1_3=-1", "_MyType=\"Empty\"" }, false)]
[InlineData("netstandard1.6", new[] { "NETSTANDARD=-1", "NETSTANDARD1_6=-1", "_MyType=\"Empty\"" }, false)]
[InlineData("net45", new[] { "NETFRAMEWORK=-1", "NET45=-1" }, true)]
[InlineData("net461", new[] { "NETFRAMEWORK=-1", "NET461=-1" }, true)]
[InlineData("netcoreapp1.0", new[] { "NETCOREAPP=-1", "NETCOREAPP1_0=-1", "_MyType=\"Empty\"" }, false)]
- [InlineData("net5.0", new[] { "NET=-1", "NET5_0=-1", "NETCOREAPP=-1", "NETCOREAPP3_1=-1", "WINDOWS=-1", "WINDOWS7_0=-1", "_MyType=\"Empty\"" }, false)]
+ [InlineData("net5.0", new[] { "NET=-1", "NET5_0=-1", "NETCOREAPP=-1", "NETCOREAPP3_1=-1", "_MyType=\"Empty\"" }, false)]
[InlineData(".NETPortable,Version=v4.5,Profile=Profile78", new string[] { "_MyType=\"Empty\"" }, false)]
[InlineData(".NETFramework,Version=v4.0,Profile=Client", new string[] { "NETFRAMEWORK=-1", "NET40=-1" }, false)]
[InlineData("Xamarin.iOS,Version=v1.0", new string[] { "XAMARINIOS=-1", "XAMARINIOS1_0=-1", "_MyType=\"Empty\"" }, false)]