.NET 11 中的重大变更

如果要将应用迁移到 .NET 11,此处列出的重大更改可能会影响你。 更改按技术领域分组,例如 ASP.NET Core或Windows 窗体。

本文将每个重大变更分类为“二进制不兼容”或“源不兼容”,或者作为“行为更改”

  • 二进制不兼容 - 针对新的运行时或组件运行时,现有二进制文件在行为上可能会遇到中断性变更,例如无法加载或执行,如果是,则需要重新编译。

  • 源不兼容 - 使用新 SDK 或组件重新编译或面向新运行时时,现有源代码可能需要进行源更改才能成功编译。

  • 行为更改 - 现有代码和二进制文件在运行时的行为可能有所不同。 如果不需要新的行为,则需要更新和重新编译现有代码。

注释

本文是当前正在进行的工作。 这不是.NET 11 中重大更改的完整列表。

核心.NET库

Title 更改类型
读取 ZIP 存档条目时添加的 CRC32 验证 行为更改
DateOnly 和 TimeOnly TryParse 方法会对无效输入抛出异常 行为更改
DeflateStream 和 GZipStream 会对空有效负载写入标头和尾标 行为更改
Environment.TickCount 已与 Windows 超时行为保持一致 行为更改
MemoryStream 最大容量更新和异常行为已更改 行为更改
使用 PipeOptions.CurrentUserOnly 的 NamedPipeServerStream 加强 Unix 套接字文件的权限 行为更改
自定义 Type 子类会引发 Nullable.GetUnderlyingType 行为更改
带有非默认诊断 ID 的 API 被淘汰 (.NET 11) 源代码不兼容
TAR 读取类 API 会在读取过程中验证标头的校验和 行为更改
TarWriter 对硬链接文件使用 HardLink 条目 行为更改
ZipArchive.CreateAsync 急切地加载 ZIP 存档条目 行为更改

Cryptography

Title 更改类型
从 macOS 中删除 DSA 行为更改

Extensions

Title 更改类型
当 BackgroundService 失败时,IHost.RunAsync 和 IHost.StopAsync 会抛出异常 行为更改

Globalization

Title 更改类型
更正了日本日历支持的最小日期 行为更改

Interop

Title 更改类型
NativeAOT 对 Unix 上的本机库输出使用 lib 前缀 行为更改

JIT 编译器

Title 更改类型
更新了最低硬件要求 行为更改

网络

Title 更改类型
默认情况下禁用 SslStream 服务器端 AIA 证书下载 行为更改

.NET MAUI

Title 更改类型
最低 Android API 级别提高到 24 行为更改

SDK 和 MSBuild

Title 更改类型
未为 .NET Framework 应用设置mono 启动目标 行为更改
VSTest 删除 Newtonsoft.Json 上的依赖项 二进制/源代码不兼容