@@ -51,8 +51,8 @@ Copyright (c) .NET Foundation. All rights reserved.
5151 <PropertyGroup Condition =" '$(SuppressTrimAnalysisWarnings)' == '' And '$(PublishTrimmed)' == 'true' And '$(EnableTrimAnalyzer)' != 'true'" >
5252 <!-- Trim analysis warnings are suppressed for .NET < 6. -->
5353 <SuppressTrimAnalysisWarnings Condition =" $([MSBuild]::VersionLessThan('$(TargetFrameworkVersion)', '6.0'))" >true</SuppressTrimAnalysisWarnings >
54- <!-- Suppress for WPF/WinForms (unless linking everything) -->
55- <SuppressTrimAnalysisWarnings Condition =" '$(TrimmerDefaultAction)' != 'link' And ('$( UseWpf)' == 'true' Or '$(UseWindowsForms)' == 'true') " >true</SuppressTrimAnalysisWarnings >
54+ <!-- Suppress for WPF/WinForms -->
55+ <SuppressTrimAnalysisWarnings Condition =" '$(UseWpf)' == 'true' Or '$(UseWindowsForms)' == 'true'" >true</SuppressTrimAnalysisWarnings >
5656 <!-- Otherwise, for .NET 6+, warnings are on by default -->
5757 <SuppressTrimAnalysisWarnings Condition =" '$(SuppressTrimAnalysisWarnings)' == ''" >false</SuppressTrimAnalysisWarnings >
5858 </PropertyGroup >
@@ -159,7 +159,7 @@ Copyright (c) .NET Foundation. All rights reserved.
159159 ReferenceAssemblyPaths =" @(ReferencePath)"
160160 RootAssemblyNames =" @(TrimmerRootAssembly)"
161161 TrimMode =" $(TrimMode)"
162- DefaultAction =" $(TrimmerDefaultAction )"
162+ DefaultAction =" $(_TrimmerDefaultAction )"
163163 RemoveSymbols =" $(TrimmerRemoveSymbols)"
164164 FeatureSettings =" @(_TrimmerFeatureSettings)"
165165 CustomData =" @(_TrimmerCustomData)"
@@ -226,16 +226,23 @@ Copyright (c) .NET Foundation. All rights reserved.
226226 <ILLinkWarningLevel Condition =" '$(ILLinkWarningLevel)' == '' " >0</ILLinkWarningLevel >
227227 </PropertyGroup >
228228
229- <!-- Defaults for .NET < 6 -->
230- <PropertyGroup Condition =" $([MSBuild]::VersionLessThan('$(TargetFrameworkVersion)', '6.0')) " >
231- <TrimMode Condition =" '$(TrimMode)' == '' " >copyused</TrimMode >
232- <!-- Action is the same regardless of whether the assembly has an IsTrimmable attribute. (The attribute didn't exist until .NET 6.) -->
233- <TrimmerDefaultAction >$(TrimMode)</TrimmerDefaultAction >
229+ <!-- In .NET 7, TrimmerDefaultAction is deprecated. TrimMode can be used for the supported configurations. -->
230+ <Warning Condition =" '$(TrimmerDefaultAction)' != '' And $([MSBuild]::VersionGreaterThan('$(TargetFrameworkVersion)', '6.0'))"
231+ Text =" Property 'TrimmerDefaultAction' is deprecated in .NET 7 and will be ignored. Use TrimMode instead." />
232+
233+ <!-- Set up TrimMode and TrimmerDefaultAction. -->
234+ <PropertyGroup >
235+ <TrimMode Condition =" '$(TrimMode)' == '' And $([MSBuild]::VersionLessThan($(TargetFrameworkVersion), '6.0'))" >copyused</TrimMode >
236+ <TrimMode Condition =" '$(TrimMode)' == '' And $([MSBuild]::VersionEquals($(TargetFrameworkVersion), '6.0'))" >partial</TrimMode >
237+ <TrimMode Condition =" '$(TrimMode)' == ''" >full</TrimMode >
238+
239+ <!-- Set TrimmerDefaultAction for compat in < 7.0 -->
240+ <_TrimmerDefaultAction Condition =" $([MSBuild]::VersionLessThan($(TargetFrameworkVersion), '7.0'))" >$(TrimmerDefaultAction)</_TrimmerDefaultAction >
241+ <_TrimmerDefaultAction Condition =" '$(_TrimmerDefaultAction)' == '' And $([MSBuild]::VersionLessThan($(TargetFrameworkVersion), '6.0'))" >$(TrimMode)</_TrimmerDefaultAction >
242+ <_TrimmerDefaultAction Condition =" '$(_TrimmerDefaultAction)' == '' And $([MSBuild]::VersionEquals($(TargetFrameworkVersion), '6.0'))" >copy</_TrimmerDefaultAction >
234243 </PropertyGroup >
244+
235245 <PropertyGroup >
236- <TrimMode Condition =" '$(TrimMode)' == '' " >link</TrimMode >
237- <!-- For .NET 6+, assemblies without IsTrimmable attribute get the "copy" action. -->
238- <TrimmerDefaultAction Condition =" '$(TrimmerDefaultAction)' == '' " >copy</TrimmerDefaultAction >
239246 <ILLinkTreatWarningsAsErrors Condition =" '$(ILLinkTreatWarningsAsErrors)' == '' " >$(TreatWarningsAsErrors)</ILLinkTreatWarningsAsErrors >
240247 <_ExtraTrimmerArgs >--skip-unresolved true $(_ExtraTrimmerArgs)</_ExtraTrimmerArgs >
241248 <TrimmerSingleWarn Condition =" '$(TrimmerSingleWarn)' == '' " >true</TrimmerSingleWarn >
@@ -296,16 +303,6 @@ Copyright (c) .NET Foundation. All rights reserved.
296303 </ManagedAssemblyToLink >
297304 </ItemGroup >
298305
299- <!-- In .NET6+, set the action explicitly for any with IsTrimmable MSBuild metadata -->
300- <ItemGroup Condition =" $([MSBuild]::VersionGreaterThanOrEquals('$(TargetFrameworkVersion)', '6.0')) " >
301- <ManagedAssemblyToLink Condition =" '%(ManagedAssemblyToLink.IsTrimmable)' == 'true' And '%(ManagedAssemblyToLink.TrimMode)' == '' " >
302- <TrimMode >$(TrimMode)</TrimMode >
303- </ManagedAssemblyToLink >
304- <ManagedAssemblyToLink Condition =" '%(ManagedAssemblyToLink.IsTrimmable)' == 'false' And '%(ManagedAssemblyToLink.TrimMode)' == '' " >
305- <TrimMode >$(TrimmerDefaultAction)</TrimMode >
306- </ManagedAssemblyToLink >
307- </ItemGroup >
308-
309306 <ItemGroup >
310307 <!-- Don't collapse to a single warning for the intermediate assembly.
311308 This just sets metadata on the items in ManagedAssemblyToLink that came from IntermediateAssembly. -->
0 commit comments