官宣 .NET 6 预览版 6
我们很高兴宣布.NET 6 预览版6问世啦。预览版6 是我们RC版发布之前的倒数第二个预览版。 我们将有两个RC版。 此版本本身相对较小,而预览版7会更大。 在那之后,我们将进行质量修复,直到11 月的最终版本。 我们期待一个很棒的新.NET 版本。
您可以下载适用于Linux、macOS 和Windows 的.NET 6 预览版 6。
- 安装程序和二进制文件
- 容器镜像
- Linux 软件包
- 发行说明
- API差异
- 已知的问题
- GitHub 问题跟踪器
从.NET 6 预览版6 开始,我们已经测试并支持Visual Studio 2022 预览版2。Visual Studio 2022是您可以用来开发.NET 6的开发工具,例如 .NET MAUI 开发、C# 应用程序的热重载、 用于WebForms 的新Web 实时预览,以及IDE 体验中的其他性能改进。.NET 6 也在Visual Studio for Mac 8.9进行了测试。
查看新的对话帖子,以深入了解工程师对最新.NET 功能的讨论。
x64 仿真更新 我们已经完成了对macOS 的Apple Silicon 和Windows 的Arm64 的支持。 剩下的就是在macOS Apple Silicon和Windows Arm64上支持x64 仿真。 我们需要做两件事来实现这一点。
- 并排安装程序
- 以.NET CLI 为目标的一流架构(主要)支持在各种场景中使用本机架构SDK。
工具:.NET SDK 可选工作负载改进 我们添加了三个新的工作负载命令,可实现更好的发现和管理。
- dotnet workload search— 列出可安装的工作负载。
- dotnet workload uninstall — 如果您不再需要某个工作负载,请删除指定的工作负载。 也是节省空间的好选择。
- dotnet workload repair — 重新安装您之前安装的所有工作负载。
- 如果您的安装因互联网连接断开而在中间失败,这将非常有用。
- 可选工作负载由多个工作负载包组成,所以有时候你会发现,其中一些工作负载包安装成功,而另一些则没有。
- dotnet workload install — 安装工作负载。
- dotnet workload list — 列出已安装的工作负载。
- dotnet workload update — 更新已安装的工作负载。
归功于@iinuwa。
工具:Crossgen2 替换 crossgen Crossgen2已为所有现有的crossgen 场景启用。 有了这个里程碑,我们还从SDK 中删除了(旧的)crossgen。 它不再可访问且无法使用。
Crossgen(1 和2)支持将IL 预编译为本机代码。 预编译主要有利于改善启动。Crossgen2 是一个从头开始的实现,已被证明是代码生成创新的卓越平台。
以下MSBuild 属性演示了如何使用crossgen2 启用预编译。
true true
库:改进了异步同步性能 异步同步是一种常见的阻塞工作类型。当它发生在线程池工作线程上时,它会导致饥饿。 缓慢的线程注入可能会延迟其他已经在队列的线程的运行,并延迟解决饥饿问题的时间。
当是由于异步同步导致线程池工作线程上发生阻塞时,此更改默认提高了线程注入率。有一些新的 AppContext 配置值可用于配置响应异步同步的线程注入率。
运行时:W^X 内存策略 我们正在为W^X 内存保护来启用支持。这是Apple Silicon 机器的一项要求,也是其他操作系统上的一项有用的安全措施。
此功能有一个不太寻常的名字。它应该读作"write exclusive execute"。这意味着一个内存页可以被标记为读/写或读/执行,但不能包括写和执行的任何组合。例如,写入/执行页面容易被缓冲区溢出攻击所利用。
【官宣 .NET 6 预览版 6】此功能需要在整个产品中进行更改,无论在哪里使用写入/执行页面。例如,预览版6 包含一项更改,要求JIT 与我们采用的 W^X 方案配合。
W^X 是 Apple Silicon 机器上 macOS 的要求,在 .NET 6 的所有其他环境中是可选的,并且可能是 .NET 7 的所有环境中的默认模式。
注意:W^X 实现在 .NET 6 的所有环境中都有一个启动回归,但 Apple Silicon 除外。它将作为 .NET 7 的一部分得到解决。Apple Silicon 实现没有这种回归,是因为操作系统对此方案的支持。
CodeGen 变更日志 以下代码生成更改包含在预览版6 中。
动态PGO
- 添加选项以随机选择受保护的 devirt 类 https://github.com/dotnet/runtime/pull/53399
- pgo/devirt 诊断改进https://github.com/dotnet/runtime/pull/53247
- 重构LSRA启发式选择 https://github.com/dotnet/runtime/pull/52832
- 现在,调试模式包含一个COMPlus 变量,LsraOrdering 将让用户设置启发式排序。
- 调整寄存器的启发式以选择最佳的寄存器候选溢出。https://github.com/dotnet/runtime/pull/53853
文章图片
文章图片
文章图片
更多改进:
- Windows x86
- Windows x64
- 更多信息
- 消除多余的"测试"指令https://github.com/dotnet/runtime/pull/53214
感谢所有让.NET 6 成为更棒的版本做出贡献的人。
感谢您成为.NET 开发人员。
最后有任何的.NET相关的开发问题,欢迎到Microsoft Q&A论坛提问。
推荐阅读
- 新垣结衣官宣结婚,从一组男友视角写真,看网友们的“夺妻之恨”
- ASP.NET|ASP.NET Core应用开发思维导图
- 魏晨结婚,郑凯苗苗官宣(幸福会迟到,但不会缺席)
- java|微软认真聆听了开源 .NET 开发社区的炮轰( 通过CLI 支持 Hot Reload 功能)
- TODO(小程序手机预览调试)
- asp.net|asp.net core中使用log4net
- Asp.net|System.Globalization.DateTimeFormatInfo.InvariantInfo
- 520这天,陈思诚和佟丽娅官宣离婚,我只想说(丫丫,你自由啦!)
- 官宣体大火,什么样的爱情愿意“官宣”呢()
- word文档转html实现在线预览功能