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。