diff --git a/src/WebSdk/Web/Targets/Sdk.Server.targets b/src/WebSdk/Web/Targets/Sdk.Server.targets index 6b4ac2a37ec2..7e62e113a473 100644 --- a/src/WebSdk/Web/Targets/Sdk.Server.targets +++ b/src/WebSdk/Web/Targets/Sdk.Server.targets @@ -54,4 +54,10 @@ Copyright (c) .NET Foundation. All rights reserved. Trim="true" /> + + + + diff --git a/test/Microsoft.NET.Sdk.Web.Tests/DeprecationTests.cs b/test/Microsoft.NET.Sdk.Web.Tests/DeprecationTests.cs new file mode 100644 index 000000000000..2b2b050930a6 --- /dev/null +++ b/test/Microsoft.NET.Sdk.Web.Tests/DeprecationTests.cs @@ -0,0 +1,81 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#nullable disable + +namespace Microsoft.NET.Sdk.Web.Tests; + +public class DeprecationTests(ITestOutputHelper log) : SdkTest(log) +{ + [Fact] + public void It_does_not_show_deprecation_warning_when_IncludeOpenAPIAnalyzers_is_not_set() + { + var testProject = new TestProject() + { + Name = "WebAppWithoutOpenAPIAnalyzers", + TargetFrameworks = ToolsetInfo.CurrentTargetFramework, + ProjectSdk = "Microsoft.NET.Sdk.Web" + }; + + var testAsset = _testAssetsManager.CreateTestProject(testProject); + + var buildCommand = new BuildCommand(testAsset); + buildCommand + .Execute() + .Should() + .Pass() + .And + .NotHaveStdOutContaining("ASPDEPR007") + .And + .NotHaveStdOutContaining("IncludeOpenAPIAnalyzers"); + } + + [Fact] + public void It_does_not_show_deprecation_warning_when_IncludeOpenAPIAnalyzers_is_false() + { + var testProject = new TestProject() + { + Name = "WebAppWithOpenAPIAnalyzersFalse", + TargetFrameworks = ToolsetInfo.CurrentTargetFramework, + ProjectSdk = "Microsoft.NET.Sdk.Web" + }; + + testProject.AdditionalProperties["IncludeOpenAPIAnalyzers"] = "false"; + + var testAsset = _testAssetsManager.CreateTestProject(testProject); + + var buildCommand = new BuildCommand(testAsset); + buildCommand + .Execute() + .Should() + .Pass() + .And + .NotHaveStdOutContaining("ASPDEPR007"); + } + + [Theory] + [InlineData(ToolsetInfo.CurrentTargetFramework)] + [InlineData("net8.0")] + [InlineData("net9.0")] + public void It_shows_deprecation_warning_across_target_frameworks(string targetFramework) + { + var testProject = new TestProject() + { + Name = $"WebApp_{targetFramework.Replace(".", "_")}", + TargetFrameworks = targetFramework, + ProjectSdk = "Microsoft.NET.Sdk.Web" + }; + + testProject.AdditionalProperties["IncludeOpenAPIAnalyzers"] = "true"; + + var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: targetFramework); + + var buildCommand = new BuildCommand(testAsset); + buildCommand + .Execute() + .Should() + .Pass() + .And + .HaveStdOutContaining("ASPDEPR007"); + } +}