.NET 5 中的中断性变更
如果要将应用迁移到 .NET 5,则此处列出的中断性变更可能会影响到你。 变更按技术领域分组,例如 ASP.NET Core 或加密。
本文指出每个中断性变更是二进制兼容还是源兼容:
- 二进制兼容 - 现有二进制文件无需重新编译即可成功加载和执行,并且运行时行为不会更改。
- 源兼容 - 面向新运行时或使用新 SDK 或组件时,源代码将成功编译,且不会发生更改。
ASP.NET Core
代码分析
标题 | 二进制兼容 | 源兼容 |
---|---|---|
CA1416 警告 | ✔ | ❌ |
CA1417 警告 | ✔ | ❌ |
CA1831 警告 | ✔ | ❌ |
CA2013 警告 | ✔ | ❌ |
CA2014 警告 | ✔ | ❌ |
CA2015 警告 | ✔ | ❌ |
CA2200 警告 | ✔ | ❌ |
CA2247 警告 | ✔ | ❌ |
Core .NET 库
密码
标题 | 二进制兼容 | 源兼容 |
---|---|---|
浏览器不支持的加密 API | ❌ | ✔ |
Cryptography.Oid 仅限 init | ✔ | ❌ |
Linux 上的默认 TLS 密码套件 | ❌ | ✔ |
对加密抽象的 Create() 重载已过时 | ✔ | ❌ |
默认 FeedbackSize 值已更改 | ✔ | ❌ |
Entity Framework Core
全球化
标题 | 二进制兼容 | 源兼容 |
---|---|---|
在 Windows 上使用 ICU 库 | ❌ | ✔ |
StringInfo 和 TextElementEnumerator 与 UAX29 兼容 | ❌ | ✔ |
Latin-1 字符的 Unicode 类别已更改 | ✔ | ❌ |
TextInfo.ListSeparator 值已更改 | ✔ | ❌ |
Interop
标题 | 二进制兼容 | 源兼容 |
---|---|---|
已删除对 WinRT 的支持 | ❌ | ✔ |
将 RCW 强制转换为 InterfaceIsIInspectable 会引发异常 | ❌ | ✔ |
不在非 Windows 平台上探测 A/W 后缀 | ❌ | ✔ |
网络
标题 | 二进制兼容 | 源兼容 |
---|---|---|
Cookie 路径处理符合 RFC 6265 | ✔ | ❌ |
调用 SendToAsync 后更新 LocalEndPoint | ✔ | ❌ |
MulticastOption.Group 不接受 NULL | ✔ | ❌ |
流允许后续开始操作 | ❌ | ✔ |
已从 .NET 运行时中删除 WinHttpHandler | ❌ | ✔ |
SDK 中 IsInRole 中的声明
安全性
标题 | 二进制兼容 | 源兼容 |
---|---|---|
代码访问安全性 API 已过时 | ✔ | ❌ |
PrincipalPermissionAttribute 已过时 | ✔ | ❌ |
UTF-7 代码路径已过时 | ✔ | ❌ |
序列化
Windows 窗体
WPF
标题 | 二进制兼容 | 源兼容 |
---|---|---|
OutputType 已设置为 WinExe | ❌ | ✔ |
WPF 应用使用 Microsoft.NET.Sdk | ❌ | ✔ |