.NET 6 中的中断性变更
如果要将应用迁移到 .NET 6,则此处列出的中断性变更可能会影响到你。 变更按技术领域分组,例如 ASP.NET Core 或 Windows 窗体。
本文指出每个中断性变更是二进制兼容还是源兼容:
- 二进制兼容 - 现有二进制文件无需重新编译即可成功加载和执行,并且运行时行为不会更改。
- 源兼容 - 面向新运行时或使用新 SDK 或组件时,源代码将成功编译,且不会发生更改。
ASP.NET Core
容器
标题 | 二进制兼容 | 源兼容 |
---|---|---|
容器映像中的默认控制台记录器格式设置 | ✔ | ❌ |
有关 .NET 6 中容器的其他重大更改的信息,请参阅 .NET 6 容器发行说明。
Core .NET 库
密码
标题 | 二进制兼容 | 源兼容 |
---|---|---|
CreateEncryptor 方法针对不正确的反馈大小引发异常 | ❌ | ✔ |
部署
标题 | 二进制兼容 | 源兼容 |
---|---|---|
64 位 Windows 上的 x86 主机路径 | ✔ | ✔ |
Entity Framework Core
Extensions
标题 | 二进制兼容 | 源兼容 |
---|---|---|
AddProvider 检查非 null 提供程序 | ✔ | ❌ |
FileConfigurationProvider.Load 引发 InvalidDataException | ✔ | ❌ |
重复的 XML 元素包括索引 | ❌ | ✔ |
解析已释放的 ServiceProvider 引发异常 | ✔ | ❌ |
全球化
标题 | 二进制兼容 | 源兼容 |
---|---|---|
全球化固定模式下的区域性创建和大小写映射 |
Interop
标题 | 二进制兼容 | 源兼容 |
---|---|---|
接口中的静态抽象成员 | ❌ | ✔ |
JIT 编译器
标题 | 二进制兼容 | 源兼容 |
---|---|---|
根据 ECMA-335 强制调用参数 | ✔ | ✔ |
网络
标题 | 二进制兼容 | 源兼容 |
---|---|---|
从 SPN 中删除了用于 Kerberos 和协商的端口 | ❌ | ✔ |
WebRequest、WebClient 和 ServicePoint 已过时 | ✔ | ❌ |
SDK 中 IsInRole 中的声明
序列化
标题 | 二进制兼容 | 源兼容 |
---|---|---|
反序列化 -0 时,DataContractSerializer 会保留符号 | ❌ | ✔ |
TimeSpan 的默认序列化格式 | ❌ | ✔ |
IAsyncEnumerable 序列化 | ✔ | ❌ |
JSON 源-生成 API 重构 | ❌ | ✔ |
集合属性上的 JsonNumberHandlingAttribute | ❌ | ✔ |
新的 JsonSerializer 源生成器重载 | ❌ | ✔ |
Windows 窗体
XML 和 XSLT
标题 | 二进制兼容 | 源兼容 |
---|---|---|
针对无效索引的 XNodeReader.GetAttribute 行为 | ✔ | ❌ |