.NET 7 中的中断性变更
如果要将应用迁移到 .NET 7,则此处列出的中断性变更可能会影响到你。 变更按技术领域分组,例如 ASP.NET Core 或 Windows 窗体。
本文指出每个中断性变更是二进制兼容还是源兼容:
- 二进制兼容 - 现有二进制文件无需重新编译即可成功加载和执行,并且运行时行为不会更改。
- 源兼容 - 面向新运行时或使用新 SDK 或组件时,源代码将成功编译,且不会发生更改。
ASP.NET Core
Core .NET 库
配置
标题 | 二进制兼容 | 源兼容 |
---|---|---|
app.config 中的 System.diagnostics 条目 | ❌ | ✔ |
密码
标题 | 二进制兼容 | 源兼容 |
---|---|---|
解密 EnvelopedCms 不会双重展开 | ❌ | ✔ |
动态 X509ChainPolicy 验证时间 | ❌ | ✔ |
X500DistinguishedName 解析易记名称 | ❌ | ✔ |
部署
标题 | 二进制兼容 | 源兼容 |
---|---|---|
默认裁剪的所有程序集 | ✔ | ❌ |
已禁用多级查找 | ❌ | ✔ |
64 位 Windows 上的 x86 主机路径 | ✔ | ✔ |
TrimmerDefaultAction 已弃用 | ✔ | ❌ |
Entity Framework Core
Extensions
标题 | 二进制兼容 | 源兼容 |
---|---|---|
将配置绑定到字典扩展值 | ✔ | ✔ |
Windows Shell 启动的应用的 ContentRootPath | ❌ | ✔ |
环境变量前缀 | ❌ | ✔ |
全球化
标题 | 二进制兼容 | 源兼容 |
---|---|---|
全球化 API 在 Windows Server 上使用 ICU 库 | ❌ | ✔ |
Interop
标题 | 二进制兼容 | 源兼容 |
---|---|---|
仿真环境下的 RuntimeInformation.OSArchitecture | ❌ | ✔ |
.NET MAUI
标题 | 二进制兼容 | 源兼容 |
---|---|---|
构造函数接受基接口而不是具体类型 | ❌ | ✔ |
已移除流方向帮助程序方法 | ❌ | ❌ |
新的 UpdateBackground 参数 | ❌ | ✔ |
已重命名 ScrollToRequest 属性 | ❌ | ❌ |
删除了某些 Windows API | ❌ | ❌ |
网络
标题 | 二进制兼容 | 源兼容 |
---|---|---|
AllowRenegotiation 默认为 false | ❌ | ❌ |
Linux 上的自定义 ping 有效负载 | ❌ | ✔ |
Socket.End 方法不引发 ObjectDisposedException | ❌ | ✔ |
SDK 和 MSBuild
序列化
标题 | 二进制兼容 | 源兼容 |
---|---|---|
反序列化 -0 时,DataContractSerializer 会保留符号 | ❌ | ✔ |
使用前导空格或尾随空格反序列化版本类型 | ❌ | ✔ |
JsonSerializerOptions 复制构造函数包括 JsonSerializerContext | ❌ | ✔ |
对象类型的多态序列化 | ❌ | ✔ |
System.Text.Json 源生成器回退 | ❌ | ✔ |
Windows 窗体
标题 | 二进制兼容 | 源兼容 |
---|---|---|
过时和警告 | ✔ | ❌ |
一些 API 引发 ArgumentNullException | ❌ | ✔ |
XML 和 XSLT
标题 | 二进制兼容 | 源兼容 |
---|---|---|
XmlSecureResolver 已过时 | ❌ | ❌ |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈