跟我们一起
玩转路由器

Macbook(M1版)的用户看过来,.net 6 Preview 6支持Apple Silicon for macOS

我们兴奋地宣布.net 6预览版第6次发布,这是倒数第二次预览版。在这次预览版发布之后,我们将进入rc阶段,并将会有两个发布候选版(rcs)。本次预览版的内容较少,但preview 7将带来更多内容。在所有预览版发布后,我们会持续修复问题,直至11月发布最终版本。请大家一同期待.net的新版本。

.NET 6 Preview 6的下载地址已提供,根据您的需求下载适合Linux、macOS和Windows的版本。

安装程序和二进制文件 Linux包 发行说明 API差异 已知问题 GitHub问题跟踪器 请查阅ASP.NET Core、EF Core和.NET MAUI文章,了解有关web、数据访问和客户端场景的新功能的详细信息。

从.NET 6 Preview 6开始,我们已经测试并支持Visual Studio 2022 Preview 2。Visual Studio 2022可使用专门为.NET 6开发的Visual Studio工具,如在.NET MAUI中的开发、C应用程序的热重载、WebForms的新Web Live预览,以及IDE体验中的其他性能改进。.NET 6也已经与Visual Studio for Mac 8.9进行了测试。

查看.NET新特性的讨论。

# x64仿真更新我们已经完成了对Apple Silicon for macOS和Arm64 for Windows的支持。接下来将支持macOS、Apple Silicon和Windows Arm64上的x64仿真。

要实现这一点,需要做以下两点:

并行安装 使用.NET CLI实现一流体系结构目标,以便在所有场景中启用本机体系结构SDK。然而,在并行安装程序可用之前(将在.NET 6的后续版本中),您需要安装所有x64版本或所有Arm64版本。如果要进行切换,需要在Arm64计算机上卸载/删除所有.NET版本。

工具:.NET SDK可选工作负载的改进我们增加了三个新的工作负载命令,以实现更好的发现和管理。

l dotnet workload search-列出可安装的工作负载

l dotnet workload uninstall-如果不再需要工作负载,请删除指定的工作负载。这也是节省空间的好选择

l dotnet workload repair-重新安装之前安装的所有工作负载

如果因为网络连接不好导致安装失败,这些命令可以解决这个问题。

可选工作负载由多个工作负载包组成,所以可能会出现部分负载包安装成功,部分安装失败的情况。

在之前的预览版中,我们已经添加了以下命令:

dotnet workload install-安装工作负载 dotnet workload list-列出已安装的工作负载 dotnet workload update-更新已安装的工作负载 库:对System.DirectoryServices.Protocols的TLS支持已为Linux和macOS的System.DirectoryServices.Protocols启用TLS支持。它已经为Windows启用。.NET用户现在可以享受与LDAP服务器的安全通信。

感谢@iinuwa的贡献。

工具:Crossgen2取代crossgen已为所有现有的crossgen方案启用了Crossgen2。在这个里程碑中,我们还从SDK中移除了(旧的)crossgen,旧crossgem不可再访问,无法使用。

Crossgen(1和2)支持将IL预编译为本机代码作为发布步骤。预编译对启动的改进有很大帮助。Crossgen2是一个从头开始的实现,已被证明是代码生成创新的高级平台。例如,crossgen2可以为比crossgen1更广泛的IL模式集生成代码。

以下MSBuild属性演示如何使用crossgen2启用预编译。

库:Sync-over-async的性能改进Sync-over-async是阻塞工作的一种常见类型。当线程池工作线程发生时,它会导致饥饿。线程注入速度过慢可能会延迟其他排队工作的运行,并且可能会延迟饥饿问题的解决。

当Sync-over-async是线程池工作线程上发生的唯一一种阻塞线程时,此更改在默认情况下提高了线程注入速率。有一些新的AppContext配置值可用于配置线程注入速率,以响应Sync-over-async。

Runtime: W^x内存策略我们支持对W^x内存保护。这是Apple Silicon的一项要求,也是其他操作系统的一项重要的安全措施。

此特性具有异常名称,它应该被读为“写独占执行”。这意味着内存页可以被标记为读/写或读/执行,但不能是任何包括写和执行的组合。例如,写/执行页会受到缓冲区溢出攻击的影响。

此特性要求在整个产品进行变更,无论使用的是写/执行页。例如,preview 6的一个变化是它要求JIT与我们采用的W^X方案协作。

W^x是苹果硅片机上macOS的一个要求,在.NET 6的所有其他环境中都是可选的,并且在.NET 7的所有环境中都可能是默认模式。

注意:W^x实现在除Apple Silicon以外的所有环境中都具有与.NET 6的启动回归,它将作为.NET 7的一部分解决。由于操作系统支持此场景,Apple Silicon实现没有这种回归。

CodeGen 更新日志在Preview 6中包含以下代码更改:

## 动态PGO添加选项以选择保护的DEVITET类随机选择 https://www.php.cn/link/ddabfbbcf6c501f08c49b55f78b4ac32 https://www.php.cn/link/cf9dfba593148297d8d8b0abd1c42612

DEBUG模式包含一个COMPlus变量,LsraOrdering将允许用户设置启发式排序 调整寄存器的启发式算法,以选择要溢出的最佳寄存器候选 https://www.php.cn/link/800ca5c1483432d248c8104d60a0db71

基于这些内容更改的改进:

更多改进:

Windows x86 Windows x64 通用改进 代码质量消除冗余的“测试”指令 https://www.php.cn/link/024da127a13f0f5fd374ee98bd052ce7

总结这次发布很快就要结束了,大家可以尽快尝试一下这次Preview 6中提到的内容改动。

感谢所有为.NET 6发布做出贡献的人。随后,葡萄城还会继续为大家带来更多.NET 6更新的相关内容分享。

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《Macbook(M1版)的用户看过来,.net 6 Preview 6支持Apple Silicon for macOS》
文章链接:https://www.lu-you.com/settings/27986.html
本站资源来源于互联网整理,若有图片影像侵权,联系邮箱429682998@qq.com删除,谢谢。

评论 抢沙发

登录

找回密码

注册