Skip to content

Commit

Permalink
Keep TrimMode=partial for projects targeting .NET 7 or below
Browse files Browse the repository at this point in the history
  • Loading branch information
captainsafia committed Jul 17, 2023
1 parent 9f5f518 commit 6d4b377
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 0 deletions.
22 changes: 22 additions & 0 deletions src/Tests/Microsoft.NET.Sdk.Web.Tests/PublishTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,28 @@ public void TrimmingOptions_Are_Defaulted_Correctly_On_Trimmed_Apps(string targe
.Should().BeFalse();
}

[Fact]
public void TrimMode_Defaulted_Correctly_On_Trimmed_Apps_Pre_Net8()
{
var projectName = "HelloWorld";
var targetFramework = "net7.0";
var rid = EnvironmentInfo.GetCompatibleRid(targetFramework);

var testProject = CreateTestProjectForILLinkTesting(targetFramework, projectName);
testProject.AdditionalProperties["PublishTrimmed"] = "true";
testProject.AdditionalProperties["RuntimeIdentifier"] = rid;
testProject.SelfContained = "true";
testProject.PropertiesToRecord.Add("TrimMode");

var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: projectName + targetFramework);

var publishCommand = new PublishCommand(testAsset);
publishCommand.Execute($"/p:RuntimeIdentifier={rid}").Should().Pass();

var buildProperties = testProject.GetPropertyValues(testAsset.TestRoot, targetFramework);
buildProperties["TrimMode"].Should().Be("partial");
}

[Theory]
[MemberData(nameof(SupportedTfms))]
public void TrimmingOptions_Are_Defaulted_Correctly_On_Aot_Apps(string targetFramework)
Expand Down
9 changes: 9 additions & 0 deletions src/WebSdk/Publish/Targets/Microsoft.NET.Sdk.Publish.targets
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,15 @@ Copyright (C) Microsoft Corporation. All rights reserved.
<PublishIntermediateOutputPath Condition="'$(DockerPublish)' == 'true'">obj/Docker/publish/</PublishIntermediateOutputPath>

<EFSQLScriptsFolderName Condition="$(EFSQLScriptsFolderName) == ''">EFSQLScripts</EFSQLScriptsFolderName>

<!-- Use default TrimMode for projects target net8.0 and above and retain TrimMode=partial for back-compat. -->
<TrimMode Condition="'$(TrimMode)' == '' And
'$(PublishTrimmed)' == 'true' And
'$(PublishAot)' != 'true' And
'$(TargetFrameworkIdentifier)' == '.NETCoreApp' And
$([MSBuild]::VersionLessThanOrEquals('$(TargetFrameworkVersion)', '7.0'))">
partial
</TrimMode>
</PropertyGroup>

<!--
Expand Down

0 comments on commit 6d4b377

Please sign in to comment.