MSBuild 属性 TrimmerDefaultAction 已弃用

发布进程现在会忽略 TrimmerDefaultAction 属性的值。

旧行为

以前,只有库项目文件中使用 <IsTrimmable>true</IsTrimmable> 选择加入的程序集才会使用 TrimmerDefaultAction 指定的操作进行裁剪。 在 .NET 6 中,该属性的默认值为 copy。 虽然出现剪裁警告的应用更有可能使用此默认值,但运行时行为仍可能受到影响。 此外,copy 操作还会导致应用比整个应用被剪裁时要大。

新行为

从 .NET 7 开始,便会忽略属性 TrimmerDefaultAction,发布的行为就像该属性一直设置为 link。 这意味着所有程序集都会被完全剪裁,无论它们是否选择加入。 因此,出现剪裁警告的应用程序可能会遇到行为变更或运行时异常。 有关还原以前行为的详细信息和说明,请参阅默认剪裁的所有程序集

引入的版本

.NET 7

中断性变更的类型

此项更改可能会影响源兼容性

更改原因

此更改简化了剪裁选项。

最佳解决方案是解决应用程序中的所有裁剪警告。 有关解决自己的库中的警告的信息,请参阅裁剪警告简介。 对于其他库,请联系作者请求他们解决警告,或选择已支持裁剪的其他库。 例如,可以使用支持裁剪的源生成切换到 System.Text.Json,而不是使用 Newtonsoft.Json。 使用该库时,不再需要使用 TrimmerDefaultAction

若要还原到以前的行为,请使用 global.json 将项目固定到 .NET 6 SDK。

另请参阅