中断性变更:默认裁剪所有程序集 您所在的位置:网站首页 中断性变更 中断性变更:默认裁剪所有程序集

中断性变更:默认裁剪所有程序集

2024-06-08 18:15| 来源: 网络整理| 查看: 265

默认裁剪的所有程序集 项目 05/10/2023

默认情况下,裁剪功能现在会裁剪控制台应用中的所有程序集。 此更改仅影响使用 PublishTrimmed=true 发布的应用,并且只会中断具有现有裁剪警告的应用。 它还仅影响不使用 Windows 桌面、Android、iOS、WASM 或 ASP.NET SDK 的普通 .NET 应用。

旧行为

以前,仅裁剪在库项目文件中使用 true 选择加入的程序集。

新行为

从 .NET 7 开始,裁剪功能默认裁剪应用中的所有程序集。 以前使用 PublishTrimmed 的应用可能无法在 .NET 7 中运行。 但是,只有带有裁剪警告的应用才会受到影响。 如果应用没有裁剪警告,则行为更改不应造成任何不利影响,并且可能会减小应用大小。

如果应用确实有裁剪警告,则可能会出现行为变化或异常。 例如,使用 Newtonsoft.Json 或 System.Text.Json 而不生成源代码来序列化和反序列化用户项目中的类型的应用可能在更改之前已经运行,因为用户项目中的类型已完全保留。 但是,会出现一个或多个裁剪警告(警告代码 ILxxxx)。 现在,将剪裁用户项目中的类型,序列化可能会失败或产生意外结果。

引入的版本

.NET 7

中断性变更的类型

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

更改原因

此更改有助于减小应用大小,而无需用户明确选择加入,并且符合用户对整个应用进行裁剪的期望,除非另有说明。

建议的操作

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

若要还原到以前的行为,请将 TrimMode 属性设置为 partial,这是 .NET 7 之前的行为。

partial

默认 .NET 7+ 值为 full:

full 受影响的 API

无。

另请参阅 剪裁选项


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有