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)]