自 .NET 6 以来, System.Drawing.Common NuGet 包已特性化为特定于 Windows 的库,并且使用它会导致编译时警告和运行时异常。 .NET 7 中删除了用于在非 Windows作系统上重新启用包使用的运行时配置开关。
旧行为
在 .NET 6 之前,使用 System.Drawing.Common 包不会生成任何编译时警告,也不会引发运行时异常。 在 .NET 6 中 System.Drawing.EnableUnixSupport
,可以将运行时配置设置设置为重新启用非 Windows 支持。
新行为
从 .NET 7 开始,System.Drawing.EnableUnixSupport
开关已被移除,并且 System.Drawing.Common 包不能再在非 Windows 操作系统上使用。
已引入的版本
.NET 7
破坏性变更的类型
此更改为行为更改。
更改原因
.NET 6 中添加了在非 Windows作系统上重新启用功能的开关,使客户有时间迁移到替代的新式库。 发布 .NET 7 后,该开关已被删除。 有关详细信息,请参阅变更原因(.NET 6 重大变更)。
建议的措施
若要将这些 API 用于跨平台应用,请迁移到备用库,例如以下选项之一:
- SkiaSharp
- ImageSharp (分层许可证)
- Aspose.Drawing (商业许可证)
- Microsoft.Maui.Graphics