我们很高兴宣布.NET 6 预览版6问世啦。预览版6 是我们RC版发布之前的倒数第二个预览版。 我们将有两个RC版。 此版本本身相对较小,而预览版7会更大。 在那之后,我们将进行质量修复,直到11 月的最终版本。 我们期待一个很棒的新.NET 版本。

您可以下载适用于 Linux、macOS 和Windows 的.NET 6 预览版 6

请参阅ASP.NET CoreEF Core.NET MAUI文章来了解更多关于Web、数据访问和客户端方案的新功能。

从.NET 6 预览版6 开始,我们已经测试并支持Visual Studio 2022 预览版2Visual 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 SiliconWindows Arm64支持x64 仿真。 我们需要做两件事来实现这一点。

在可以使用并排安装程序之前(之后在.NET 6 中),您需要安装所有x64 版本或者所有Arm64 版本。 如果要切换,需要卸载/删除Arm64 机器上的所有.NET 版本。 很抱歉,目前在这个阶段只能这样实现。

工具:.NET SDK 可选工作负载改进

我们添加了三个新的工作负载命令,可实现更好的发现和管理。

  • dotnet workload search— 列出可安装的工作负载。
  • dotnet workload uninstall — 如果您不再需要某个工作负载,请删除指定的工作负载。 也是节省空间的好选择。
  • 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

Crossgen2已为所有现有的crossgen 场景启用。 有了这个里程碑,我们还从SDK 中删除了(旧的)crossgen。 它不再可访问且无法使用。

Crossgen(1 和2)支持将IL 预编译为本机代码。 预编译主要有利于改善启动。Crossgen2 是一个从头开始的实现,已被证明是代码生成创新的卓越平台。

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

   <!-- Enable pre-compiling native code (in ready-to-run format) with crossgen2 -->
<PublishReadyToRun>true</PublishReadyToRun>
<!-- Enable generating a composite R2R image --> <PublishReadyToRunComposite>true</PublishReadyToRunComposite>

库:改进了异步同步性能

异步同步是一种常见的阻塞工作类型。当它发生在线程池工作线程上时,它会导致饥饿。 缓慢的线程注入可能会延迟其他已经在队列的线程的运行,并延迟解决饥饿问题的时间。

当是由于异步同步导致线程池工作线程上发生阻塞时,此更改默认提高了线程注入率。有一些新的 AppContext 配置值可用于配置响应异步同步的线程注入率。

运行时:W^X 内存策略

我们正在为W^X 内存保护启用支持。这是Apple Silicon 机器的一项要求,也是其他操作系统上的一项有用的安全措施。

此功能有一个不太寻常的名字。它应该读作"write exclusive execute"。这意味着一个内存页可以被标记为读/写或读/执行,但不能包括写和执行的任何组合。例如,写入/执行页面容易被缓冲区溢出攻击所利用。

此功能需要在整个产品中进行更改,无论在哪里使用写入/执行页面。例如,预览版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

LSRA

以下改进基于这些更改。





更多改进:

代码质量

结束语

随时每一个预览版的发布,很快我们将只处理最紧迫的一些的反馈,来为我们最终的版本提供最高的质量保证,如果您尚未尝试.NET 6,请立即尝试。 因为这将是你影响发布的最后机会啦。

感谢所有让.NET 6 成为更棒的版本做出贡献的人。

感谢您成为.NET 开发人员。

最后有任何的.NET相关的开发问题,欢迎到Microsoft Q&A论坛提问。

官宣 .NET 6 预览版 6的更多相关文章

  1. 官宣.NET 6 预览版4

    我们很高兴发布 .NET 6 Preview 4.我们现在大约完成了 .NET 6 发布的一半.现在是一个很好的时机,可以再次查看.NET6的完整范围.许多功能都接近最终形式,而其他功能将很快推出,因 ...

  2. 官宣 .NET MAUI 预览版 6

    最近,我们发布了.NET 多平台应用程序UI (MAUI)的最新进展. 在此版本中,我们全力支持Visual Studio 2022 预览版2.这也标志着我们首次将.NET MAUI 作为工作负载安装 ...

  3. 【译】Visual Studio 15 预览版更新说明

    序:恰逢Build2016大会召开,微软发布了VS2015的update2更新包和VS2016预览版.本人正在提升英文水平中,于是在这里对VS2016预览版的官方文档进行了部分翻译.因为VS有些功能使 ...

  4. Android 发布可穿戴设备 SDK 的开发者预览版

    今早上安卓官网查资料,发现网站上赫然显示着"Android Wear"几个大字.难道……?点进去看,果然,Android发布了可穿戴设备的SDK的开发者预览版. 其中这第五张图…… ...

  5. [下载] VS 2013 Update 4 & 社群版 (Visual Studio Community) & VS 2015 Preview预览版

    这是我的备份,原文请看http://www.dotblogs.com.tw/mis2000lab/archive/2014/11/13/vs2013_update4_community_vs2015_ ...

  6. PyCharm:2017.3版即将新增科学计算模式,预览版现在可以下载使用

    编译:Lemon,原文作者:Ernst Haagsman 公众号:Python数据之道(ID:PyDataRoad) pycharm:2017.3版即将新增科学计算模式 在JetBrains将发布的新 ...

  7. Asp.net Core中SignalR Core预览版的一些新特性前瞻,附源码(消息订阅与发送二进制数据)

    目录 SignalR系列目录(注意,是ASP.NET的目录.不是Core的) 前言 一晃一个月又过去了,上个月有个比较大的项目要验收上线.所以忙的脚不沾地.现在终于可以忙里偷闲,写一篇关于Signal ...

  8. 【最新】Power BI混合现实应用Mixed Reality app预览版正式发布

    1.介绍 2018年3月13日,Power BI在官方博客和Docs文档发布了Power BI for Mixed Reality应用预览版的消息, 也就是可以以后在更虚拟的世界中来观察你的报表,想象 ...

  9. ASP.NET Core 3.0预览版体验

    目前.NET Core 3.0的版本为.NET Core 3.0 Preview 3,对应ASP.NET Core 3.0 Preview 3. ASP.NET Core 3.0 之后将不再支持.NE ...

随机推荐

  1. php mkdir 创建多级目录以及修改权限

    mkdir() 用法:mkdir($path,0777,true); 第一个参数:必须,代表要创建的多级目录的路径:第二个参数:设定目录的权限,默认是 0777,意味着最大可能的访问权:注意:mode ...

  2. pip与apt-get的使用

    pip的使用 pip 是 Python 包管理工具,该工具提供了对Python 包的查找.下载.安装.卸载的功能. pip --version    #python2.x 版本命令,显示版本和路径 p ...

  3. macos 安装telnet命令

    在10.12及以下版本,都内置了telnet命令,但是在10.13中,已经取消了 接下来给大家介绍下如何安装telnet命令 打开"终端",输入: /usr/bin/ruby -e ...

  4. linux 之管道命令与重定向

    一.Linux重定向 重定向能够实现Linux命令的输入输出与文件之间重定向,以及实现将多个命令组合起来实现更加强大的命令.这部分涉及到的比较多的命令主要有: 涉及到的比较多的命令主要有: cat:连 ...

  5. Linux安装telnet(转)

      一.安装telnet 1.检测telnet-server的rpm包是否安装 [root@localhost ~]# rpm -qa telnet-server 若无输入内容,则表示没有安装.出于安 ...

  6. php curl处理get和post请求

    CURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP.FTP.TELNET等.最爽的是,PHP也支持 CURL 库.使用PHP的CURL 库可以简单和有效地去抓网页.你只 ...

  7. F5负载均衡-配置指导手册(含IPv6)

    F5负载均衡-配置手册 设备概况 图形化界面 通过网络形式访问F5任一接口地址,打开浏览器输入https://网络接口地址:或pc机直连F5的MGMT带外管理口,打开浏览器,输入https://192 ...

  8. 【Git】pull遇到错误:error: Your local changes to the following files would be overwritten by merge:

    这种情况下,如何保留本地的修改同时又把远程的合并过来呢? 首先取决于你是否想要保存本地修改.(是 /否) 是 git stash git pull origin master git stash po ...

  9. python使用笔记006-函数+json操作

    一.函数 函数:提高代码的复用性 1.1 函数的定义 1 def hello(): 2 print('hello') 3 print('fdsfjslkfs') 4 5 #函数不调用就不会执行 6 h ...

  10. 【剑指offer】77.调整数组顺序使奇数位于偶数前面

    77.调整数组顺序使奇数位于偶数前面 知识点:数组:快速排序:冒泡排序: 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部 ...