2022Logo Visual Studio 2022 版本 17.6 发行说明

提示

即将发布:抢先访问 GitHub Copilot for Visual Studio 的最新 AI 驱动的功能。 深入了解全面的代码解释、生成单元测试并发现修复 bug 的解决方案。 注册!


提示

观看 Visual Studio 2022 发布活动的录制内容,了解新功能,听取提示和技巧,并下载免费的数字材料。

开发者社区| Visual Studio 2022 路线图| 系统要求| 兼容性| 可分发代码| 发行历史记录| 许可条款| 博客| 最新版本已知问题| Visual Studio 新增功能文档


单击按钮即可下载最新版 Visual Studio 2022。 有关如何安装和更新 Visual Studio 2022 的说明,请参阅将 Visual Studio 2022 更新到最新版本。 另请参阅如何脱机安装的说明。

下载 Community 版按钮下载 Professional 版按钮下载 Professional 版按钮

访问 Visual Studio 网站,下载其他 Visual Studio 2022 产品。


Visual Studio 2022 版本 17.6 发行版


Visual Studio 2022 版本 17.6

支持的时间范围

配置为在 17.6 LTSC 频道上接收更新的 Visual Studio 2022 版本 17.6 的 Enterprise 和 Professional 用户提供支持,他们将在 2025 年 1 月之前收到针对安全漏洞的修补程序。 有关 Visual Studio 支持的基线的详细信息,请查看 Visual Studio 2022 的支持策略

单击下面的按钮之一,从 17.6 LTSC 频道下载 Visual Studio 2022 版本 17.6 的最安全发行版。 可以在 Visual Studio 订阅网站上找到其他 17.6 LTSC 产品。

下载 Enterprise LTSC 按钮下载 Professional LTSC 按钮

Visual Studio Community 版本仅在具有 Visual Studio 最新次要版本的最新服务版本的当前频道上受支持。

访问 Visual Studio 网站可访问最新版本的 Visual Studio 2022 产品的链接。 有关如何安装和更新 Visual Studio 2022 的说明,请参阅将 Visual Studio 2022 更新到最新版本Visual Studio 管理员指南包含有关如何在整个组织中部署 Visual Studio 的指南。

Visual Studio 2022 博客

可从 Visual Studio 2022 博客获取来自 Visual Studio 工程团队的官方产品见解。 有关 Visual Studio 2022 版的详细信息,可参阅以下文章:


17.6.19 Visual Studio 2022 版本 17.6.19

发布日期:2024 年 9 月 10 日

此版本中的新增功能

已解决的安全公告

CVE-2024-35272 SQL Server Native Client OLE DB 提供程序远程代码执行漏洞


17.6.18 Visual Studio 2022 版本 17.6.18

发布日期:2024 年 8 月 13 日

此版本中新增功能的摘要

已解决的安全公告

  • CVE-2024-38167 - .NET 运行时 TlsStream 中存在可能导致信息泄露的漏洞。
  • CVE-2024-38168 - .NET 中存在一个漏洞,攻击者通过未经身份验证的请求可能触发 ASP.NET HTTP.sys Web 服务器的拒绝服务。 这是一个仅限 Windows OS 的漏洞。
  • CVE-2024-29187(重新发布) - 基于 WiX 的安装程序在作为 SYSTEM 运行时容易受到二进制劫持

17.6.17 Visual Studio 2022 版本 17.6.17

发布时间:2024 年 7 月 9 日

此版本中新增功能的摘要

  • 将 MinGit 更新为包括 GCM 2.5 的 v2.45.2.1,它解决了以前的 GCM 版本的问题,即在克隆后向 Git 报告错误,从而导致克隆似乎失败。

已解决的安全公告

  • CVE-2024-38081 Windows OS 上的 Visual Studio 安装程序中存在一个漏洞,非特权用户可以操纵 Visual Studio 安装,从而提升特权。
  • CVE-2024-30105 .NET 中存在一个漏洞,当使用 System.Text.Json 针对不受信任的输入调用 JsonSerializer.DeserializeAsyncEnumerable 方法时,可能会导致拒绝服务。
  • CVE-2024-38095 存在一个漏洞,当 .NET 中的 System.Formats.Asn1 分析 X.509 证书或证书集合时,恶意证书可能会导致所有平台上的 CPU 消耗过多,从而导致拒绝服务。
  • CVE-2024-35264 ASP.NET Core 8 中存在一个漏洞,即 Kestrel HTTP/3 中的数据损坏可能会导致远程代码执行。

17.6.16 Visual Studio 2022 版本 17.6.16

发布日期:2024 年 6 月 11 日

此版本中新增功能的摘要

  • 升级到 Windows 的 Germanium 版本后,WSL 需要手动升级。 这可能会导致 Visual Studio 在打开 CMake 项目时挂起。
  • 修复了 PDB 读取代码中的 bug,以忽略某些 FASTLINK PDB 中的预期故障。

开发人员社区

已解决的安全公告

  • CVE-2024-30052:在调试包含具有合理扩展名的恶意文件的转储文件时出现远程代码执行漏洞
  • CVE-2024-29060:在受影响的 Visual Studio 安装运行期间出现特权提升漏洞
  • CVE-2024-29187 基于 WiX 的安装程序在以 SYSTEM 身份运行时容易受到二进制劫持的攻击

17.6.15 Visual Studio 2022 版本 17.6.15

发布日期:2024 年 5 月 14 日

此版本中新增功能的摘要

  • “Xamarin”和“Xamarin Profiler”安装程序组件已标记为“停止支持”。
  • 此版本还将 OpenSSL 更新到了 v3.2.1

已解决的安全公告

  • CVE-2024-32002 支持符号链接的、不区分大小写的文件系统上的递归克隆很容易受到远程代码执行的影响。
  • CVE-2024-32004 克隆特制本地存储库时发生远程代码执行
  • CVE-2024-30045 .NET 7.0 和 .NET 8.0 中存在一个远程代码执行漏洞:.NET Double Parse 例程会发生堆栈缓冲区溢出。
  • CVE-2024-30046 Microsoft.AspNetCore.Server.Kestrel.Core.dll 中存在一个漏洞:可能发生死锁,导致出现拒绝服务错误。

17.6.14 Visual Studio 2022 版本 17.6.14

发布时间:2024 年 4 月 9 日

此发行版 Visual Studio 2022 版本 17.6.14 的新增内容摘要

  • 安装此 bug 修补程序后,客户端现在可以在布局中使用引导程序,并传入 --noWeb 参数以在客户端计算机上安装,并确保仅从布局下载安装程序和 Visual Studio 产品。 以前,在安装过程中,有时安装程序不会执行 -noWeb 参数,而是尝试从 Web 自行更新。

已解决的安全公告

  • CVE-2024-21409 WPF 中存在 use-after-free 漏洞,在查看不受信任的文档时可能会导致特权提升。
  • CVE-2024-28929 此更新解决了 Microsoft ODBC Driver for Microsoft SQL Server 中的远程代码执行漏洞。
  • CVE-2024-28930 此更新解决了 Microsoft ODBC Driver for Microsoft SQL Server 中的远程代码执行漏洞。
  • CVE-2024-28931 此更新解决了 Microsoft ODBC Driver for Microsoft SQL Server 中的远程代码执行漏洞。
  • CVE-2024-28932 此更新解决了 Microsoft ODBC Driver for Microsoft SQL Server 中的远程代码执行漏洞。
  • CVE-2024-28933 此更新解决了 Microsoft ODBC Driver for Microsoft SQL Server 中的远程代码执行漏洞。
  • CVE-2024-28934 此更新解决了 Microsoft ODBC Driver for Microsoft SQL Server 中的远程代码执行漏洞。
  • CVE-2024-28935 此更新解决了 Microsoft ODBC Driver for Microsoft SQL Server 中的远程代码执行漏洞。
  • CVE-2024-28936 此更新解决了 Microsoft ODBC Driver for Microsoft SQL Server 中的远程代码执行漏洞。
  • CVE-2024-28937 此更新解决了 Microsoft ODBC Driver for Microsoft SQL Server 中的远程代码执行漏洞。
  • CVE-2024-28938 此更新解决了 Microsoft ODBC Driver for Microsoft SQL Server 中的远程代码执行漏洞。
  • CVE-2024-28941 此更新解决了 Microsoft ODBC Driver for Microsoft SQL Server 中的远程代码执行漏洞。
  • CVE-2024-28943 此更新解决了 Microsoft ODBC Driver for Microsoft SQL Server 中的远程代码执行漏洞。
  • CVE-2024-29043 此更新解决了 Microsoft ODBC Driver for Microsoft SQL Server 中的远程代码执行漏洞。

17.6.13 Visual Studio 2022 版本 17.6.13

发布时间:2024 年 3 月 12 日

此发行版 Visual Studio 2022 版本 17.6.13 中的新增功能摘要

已解决的安全公告

  • CVE-2024-21392 .NET 中存在漏洞,其中特制的请求可能会导致资源泄漏,从而导致拒绝服务。
  • CVE-2024-26190 MsQuic.dll 存在漏洞,这可能会导致 Peer 节点只要在保持连接状态下就可以分配小块内存。
  • CVE-2023-27911 此公告已重新发布,以说明 Visual Studio 2022 不再支持 Autodesk® FBX® SDK。

17.6.12 Visual Studio 2022 版本 17.6.12

发布日期:2024 年 2 月 13 日

此次发布的 Visual Studio 2022 版本 17.6.12 的新增内容摘要

已解决的安全公告

  • CVE-2024-0057 存在安全功能绕过漏洞,当基于 Microsoft .NET Framework 的应用程序使用 X.509 链生成 API 时,由于逻辑缺陷,无法完全验证 X.509 证书。
  • CVE-2024-21386 使用 SignalR 的 ASP.NET 应用程序中存在漏洞,恶意客户端可能导致拒绝服务。
  • CVE-2024-21404 分析 X509 证书时,.NET 中存在拒绝服务漏洞,带有 OpenSSL 支持。

17.6.11 Visual Studio 2022 版本 17.6.11

发布时间:2024 年 1 月 9 日

Visual Studio 2022 版本 17.6.11 此次发布的新增功能摘要

  • IncrediBuild 的更新版本修复了以下问题:使用标准生成菜单命令生成 CMake 项目时,默认情况下会错误地将生成重定向为使用 IncrediBuild。
  • 修复 ASan 中的无限递归 - 在较新版本的 Windows 中,ntdll 已开始在其异常处理机制中调用 memset;因此,我们必须确保在我们被 ntdll 调用时,不会从 memset 引发任何 SEH 异常。
  • 将 MinGit 更新到了 v2.43.0.1(该版本与 OpenSSL v3.1.4 一起提供),并解决了在某些情况下网络操作非常缓慢的性能下降问题。

已解决的安全公告

  • CVE-2024-20656 VSStandardCollectorService150 服务中存在漏洞,本地攻击者可以在运行 Microsoft Visual Studio 受影响安装的主机上提升特权。
  • CVE-2023-32027 此公告已重新发布,以解决 Visual Studio 中的 Microsoft ODBC Driver for SQL Server 远程代码执行漏洞。
  • CVE-2023-32025 此公告已重新发布,以解决 Visual Studio 中的 Microsoft ODBC Driver for SQL Server 远程代码执行漏洞。
  • CVE-2023-32026 此公告已重新发布,以解决 Visual Studio 中的 Microsoft ODBC Driver for SQL Server 远程代码执行漏洞。
  • CVE-2023-29356 此公告已重新发布,以解决 Visual Studio 中的 Microsoft ODBC Driver for SQL Server 远程代码执行漏洞。
  • CVE-2023-32028 此公告已重新发布,以解决 Visual Studio 中的 Microsoft SQL OLE DB 远程代码执行漏洞。
  • CVE-2023-29349 此公告已重新发布,以解决 Visual Studio 中的 Microsoft ODBC 和 OLE DB 远程代码执行漏洞。
  • CVE-2024-0057 存在安全功能绕过漏洞,当基于 Microsoft .NET Framework 的应用程序使用 X.509 链生成 API 时,由于逻辑缺陷,无法完全验证 X.509 证书。
  • CVE-2024-0056 Microsoft.Data.SqlClient 和 System.Data.SqlClient SQL 数据提供程序中存在漏洞,攻击者可以在 SQL 客户端和 SQL 服务器之间执行拦截攻击(有时称为 MITM,即中间人攻击)。
  • CVE-2024-21319 Microsoft 发布此安全公告旨在提供 ASP.NET Core 项目模板中的漏洞相关信息。

17.6.10 Visual Studio 2022 版本 17.6.10

发布时间:2023 年 11 月 14 日

此发行版 Visual Studio 2022 版本 17.6.10 的新增内容摘要

  • 在 VS 2022 v17.6 中,VC++ 可再发行程序包的更新对安装文件的目录进行了更新。 如果依赖于记录的方式来引用这些文件,那么应该没有影响。 但是,如果在应用部署脚本中具有硬编码的版本目录,则可能需要更新生成项来引用新位置。
  • 修复了 ASan 中的无限递归 - 在较新版本的 Windows 中,ntdll 已开始在其异常处理机制中调用 memset;因此,我们必须确保在我们被 ntdll 调用时,没有从 memset 引发任何 SEH 异常。
  • 修复了将 /analyze 选项与 /std:c++20 选项一起使用进行代码分析期间出现的编辑器崩溃。
  • 修复了由某些 C++ 模式触发的移动检查 (C26800) 之后使用的崩溃。

开发者社区亮点

已解决的安全公告

  • CVE-2023-36038ASP.NET IIS 中存在漏洞:远程未经身份验证的用户可以向 .NET 应用程序发出特制的请求,这可能会导致拒绝服务。
  • CVE-2023-36049.NET 中存在特权提升漏洞:提供给 System.Net.WebRequest.Create 的不受信任的 URI 可用于向后端 FTP 服务器注入任意命令。
  • CVE-2023-36558ASP.NET 中存在安全功能绕过漏洞:未经身份验证的用户可绕过 blazor server 窗体上的验证,这可能会触发意外的操作。
  • CVE-2023-36042Visual Studio 中存在拒绝服务漏洞:格式不正确的修饰名称可能会导致无限循环。

17.6.9 Visual Studio 2022 版本 17.6.9

发布日期:2023 年 10 月 24 日

此发行版 Visual Studio 2022 版本 17.6.9 的新增内容摘要

安全公告已重新发布

  • CVE-2023-36799.NET 中存在一个漏洞:读取恶意制作的 X.509 证书可能会导致拒绝服务。 此问题只影响 Linux 系统。
  • CVE-2023-36796此安全更新解决了 DiaSymReader.dll 中读取损坏的 PDB 文件时可能导致远程执行代码的漏洞。
  • CVE-2023-36794此安全更新解决了 DiaSymReader.dll 中读取损坏的 PDB 文件时可能导致远程执行代码的漏洞。
  • CVE-2023-36793此安全更新解决了 DiaSymReader.dll 中读取损坏的 PDB 文件时可能导致远程执行代码的漏洞。
  • CVE-2023-36792此安全更新解决了 DiaSymReader.dll 中读取损坏的 PDB 文件时可能导致远程执行代码的漏洞。

17.6.8 Visual Studio 2022 版本 17.6.8

发布日期:2023 年 10 月 10 日

此发行版 Visual Studio 2022 版本 17.6.8 的新增内容摘要

开发者社区亮点

已解决的安全公告

  • CVE-2023-36435MsQuic.dll 中存在内存泄漏漏洞,这可能导致拒绝服务。 此问题只影响 Windows 系统。
  • CVE-2023-38171MsQuic.dll 中存在空指针漏洞,这可能会导致拒绝服务。 此问题只影响 Windows 系统。
  • CVE-2023-44487ASP.NET Core Kestrel Web 服务器中存在漏洞,恶意客户端可能会向服务器发送大量特制的 HTTP/2 请求,从而导致拒绝服务。

17.6.7 Visual Studio 2022 版本 17.6.7

发布日期:2023 年 9 月 12 日

此发行版 Visual Studio 2022 版本 17.6.7 的新增内容摘要

  • 已将 Visual Studio 使用的 Git 版本更新为 v 2.41.0.3。

开发者社区亮点

已解决的安全公告

  • CVE-2023-36799.NET 中存在一个漏洞:读取恶意制作的 X.509 证书可能会导致拒绝服务。 此问题只影响 Linux 系统。
  • CVE-2023-36796此安全更新解决了 DiaSymReader.dll 中读取损坏的 PDB 文件时可能导致远程执行代码的漏洞。
  • CVE-2023-36794此安全更新解决了 DiaSymReader.dll 中读取损坏的 PDB 文件时可能导致远程执行代码的漏洞。
  • CVE-2023-36793此安全更新解决了 DiaSymReader.dll 中读取损坏的 PDB 文件时可能导致远程执行代码的漏洞。
  • CVE-2023-36792此安全更新解决了 DiaSymReader.dll 中读取损坏的 PDB 文件时可能导致远程执行代码的漏洞。
  • CVE-2023-36759此安全更新删除了 pgodriver.sys,在其中读取恶意文件可能会导致权限提升。

17.6.6 Visual Studio 2022 版本 17.6.6

发布日期:2023 年 8 月 8 日

此发行版 Visual Studio 2022 版本 17.6.6 的新增内容摘要

  • 修复了涉及继承的赋值运算符的 IntelliSense 崩溃问题。
  • SQL 文件语法突出显示功能现在应按预期方式工作。
  • 修复了最近引入的 bug,该 bug 可能会导致代码分析过程中出现编译器内部错误。
  • 修复了 C++ 模块 bug 并添加了多个模块吞吐量改进。

开发者社区亮点

已解决的安全公告

  • CVE-2023-35390 在权限较弱的目录中使用某些 dotnet 命令时存在漏洞,可能会导致远程代码执行。
  • CVE-2023-38180 Kestrel 中存在一个漏洞:在检测到潜在恶意客户端时,Kestrel 有时会无法断开连接,导致拒绝服务。
  • CVE-2023-38178 .NET Kestrel 中存在一个漏洞:恶意客户端可以在 ASP.NET 和 .NET 运行时中绕过 HTTP/3 中的 QUIC 流限制,导致拒绝服务。
  • CVE-2023-35391 ASP.NET Core 2.1、.NET 7.0 和 .NET 6.0 应用程序中存在漏洞:在使用 Redis 底板时使用 SignalR 可能会导致信息泄露。
  • CVE-2023-36897 针对 Office 运行时欺骗漏洞的 Visual Studio 2010 Tools 此安全更新解决了未经身份验证的远程攻击者可以在没有有效代码签名证书的情况下对 VSTO 加载项部署进行签名的漏洞。

17.6.5 Visual Studio 2022 版本 17.6.5

发布时间:2023 年 7 月 11 日

此发行版 Visual Studio 2022 版本 17.6.5 的新增内容摘要

  • 解决了切换无符号 64 位整数可能导致 x86 和 ARM 目标崩溃的问题。
  • 解决了带有 Entity Framework Designer 的 Visual Basic 的用户在保存 edmx 文件后可能遇到编译错误的问题。

开发者社区亮点

已解决的安全公告


17.6.4 Visual Studio 2022 版本 17.6.4

发布日期:2023 年 6 月 20 日

此发行版 Visual Studio 2022 版本 17.6.4 的新增内容摘要

  • 修复了保存 C++ 文件有时会导致 IDE 挂起的问题。
  • 修复了为 VC 项目设置“显示所有文件”模式时,有时这些项目中的文件的结果将在 GoTo 和 FindInFiles 中丢失的问题。
  • 修复了 '__declspec(property) 导致 C++20 和 /clr 出现语法错误的问题
  • 修复了 ASAN 初始化中在启动时导致故障的争用条件
  • 当多个测试项目按顺序运行时,vstest.console 可能会消耗大量 CPU,因为它会不断轮询来自已启动但尚未执行的测试主机的数据。 通过禁用测试主机预启动,此问题得到了缓解。 此回归是在 17.6.0 中引入的。
  • 修复了面向 iOS 的 MAUI 中涉及 XCFramework 时的 MessagingRemoteException。 Ref xamarin/macios#18308
  • 此版本的 Visual Studio 包括 Windows 应用 SDK 1.3.230502000。 有关更多详细信息,请参阅 Windows 应用 SDK 发布通道 - Windows 应用
  • 包括 Windows SDK for Windows 11 的服务更新 10.0.22621.1778。 有关详细信息,请参阅 Windows SDK
  • 修复了文档选项卡可能会意外地取消停靠到浮动窗口的 bug。
  • 修复了解决方案关闭时某些 Visual Studio 崩溃的问题。

开发者社区亮点


17.6.3 Visual Studio 2022 版本 17.6.3

发布日期:2023 年 6 月 13 日

此次发布的 Visual Studio 2022 版本 17.6.3 的新增功能摘要

  • 在 razor 编译器中引入了回归,破坏了具有显式分部类的某些标记帮助程序。 在修复此 bug 之前,客户可以通过固定回 7.0.203 SDK 来解决此问题。

已解决的安全公告


17.6.2 Visual Studio 2022 版本 17.6.2

发布日期:2023 年 5 月 25 日

此发行版 Visual Studio 2022 版本 17.6.2 的新增内容摘要

开发者社区亮点


17.6.1 Visual Studio 2022 版本 17.6.1

发布日期:2023 年 5 月 22 日

此发行版 Visual Studio 2022 版本 17.6.1 的新增内容摘要

  • 我们已对 whatsnew 内容进行了一些更新。

17.6.0 Visual Studio 2022 版本 17.6

发布日期:2023 年 5 月 16 日

此 Visual Studio 2022 版本 17.6 的新增内容摘要

开发者社区亮点

F#

  • 推出了本机“转到定义”功能,用于从 C# 导航到 F#。

转到定义:C# 到 F#

在此处查看支持的方案:#14377

  • 改进了形参名称提示,方法是在它们与实参名称匹配时隐藏它们

改进的形参名称提示

  • 已启用可折叠块注释以提高可读性

F# 中的可折叠注释

  • 通过合并可设置的属性优化了属性完成
  • 解决了导致结果划分为相同标签组的“查找所有引用”bug
  • 通过对结果智能排序升级了“全部转到”功能体验。 有关更多详细信息,请参阅:#14882

C++

  • 在 CMake 目标视图中现可与活动文档同步。 它查找与文件的完整路径匹配的第一个位置,并与该文档同步。
  • 我们对“解决方案 - 关闭”方案进行了改进,从而可以更快地关闭包含 C++ 项目的解决方案。 整体性能改进使解决方案的关闭速度在某些情况下得到 20%(小型代码库)到 50%(超过 1000 个项目的大型解决方案)的提升。 我们预计,在大型项目中,提升将更加明显。 对于 Chromium,改进通常快 50%,可节省 20 秒的时间。
  • 通过 Visual Studio 安装程序捆绑的 Incredibuild 版本已更新到版本 10.1.9。 可以阅读 Incredbuild 10 发行说明,了解有关新功能和最新更改的详细信息。
  • 对 C++/CLI 的 C++20 支持
    • /std:c++20 现可与 /clr 结合使用。 这样一来,可以将各种 C++20 构造与 ISO C++ 类型一起使用。 尤其是,可以在 /clr 编译中不受限制地对所有 C++20 标头执行 #included 操作。
    • 指定 /std:c++20/std:c++17 时,两阶段名称查找 (ISO C++ [temp.dep]) 现在是默认值。 对于 /std:c++17,不再需要指定 /Zc:twoPhase-。 托管模板和泛型是例外,将像以前一样对其进行编译,而不需要两阶段查找语义。
    • 协同例程始终编译为本机代码,来自托管代码的任何调用都将产生托管->本机转换损失。
    • 本机类型支持概念,但禁止与托管类型一起使用,否则会导致诊断。
    • 模块支持尚未实现。 受限的模块导入支持将在未来的版本中推出。
  • 可使用新的 CMake 调试器在配置时调试 CMake 脚本。 可以根据文件名、行号以及触发 CMake 错误的时间设置断点。 此外,还可以查看文件名的调用堆栈并监视定义的变量。 目前,这仅适用于捆绑的 CMake,尚不支持面向 WSL 或远程计算机的项目。 我们正在致力于向 CMake 调试器添加更多支持,并非常欢迎提供反馈。

cmake 调试器

  • 现在可使用“创建成员函数”功能向类快速添加构造函数和相等运算符。 如果类具有字段,则类名称下将显示三个点,将鼠标悬停在它们上方将显示螺丝刀图标。 螺丝刀图标中的下拉列表将显示新的成员函数建议。 这样,可以添加默认构造函数、包含所有字段的构造函数、相等运算符和包含所有字段的相等运算符。 创建成员函数
  • HLSL(高级着色语言)是一种特定于 DirectX 的编程语言,用于在游戏开发和渲染应用程序中创建着色器。 Tim Jones 提供的热门 HLSL 工具扩展现已作为 Visual Studio 的一部分提供,它提供语法突出显示、语句补全、转到定义等功能! 若要使用 HLSL 工具,请在Visual Studio 安装程序中的“使用 C++ 进行游戏开发”或“使用 Unity 进行游戏开发”工作负载中启用该组件。
  • 改进了针对 C++ 符号的“转到”和“一站式搜索”的性能。
  • 现在不离开 Visual Studio 即可查看 Unreal Engine 日志。 若要打开日志窗口,请单击“查看”>“其他窗口”>“Unreal Engine 日志”。 打开 UE 日志窗口后,使用 F5 启动 Unreal 编辑器时,日志将自动流式传输。 如果无法将调试器附加到 UE 进程,也可以按红色的“记录”按钮。 若要筛选日志,请单击“类别”或“详细程度”下拉列表。
  • 现在,可以通过“文件”>“打开”>“导入 STM32CubeIDE 项目”导入 STM32CubeIDE 项目以在 Visual Studio 内进行嵌入式开发。 这会生成一个 CMake 项目,其中包含用于 STLink 的设备闪存和调试设置。 必须为设备安装 STM32CubeIDE 和板支持包。 此处提供更多详细信息。
  • 使用新的远程文件资源管理器,可以浏览文件并将其上传和下载到连接管理器中列出的远程计算机。

远程文件资源管理器

SQL

对账本的支持

  • 由于数据库随着时间推移而发展,数据库账本不断捕获数据库的状态,同时账本表会进行更新。 它在逻辑上使用区块链和 Merkle 树数据结构
  • 我们将添加类似于 Azure Data Studio 的 Sql Server Data Tools 中的账本功能。 SQL Ledger 是 SQL 2022 中的一项新增功能,可生成新的表类型,包括:
    • 仅追加账本表
    • 可更新账本表
    • 账本历史记录表
    • 已删除账本表
    • 账本视图
    • 已删除账本视图

SQL Ledger

  • 我们将为账本提供以下用例:
    • 在 SSOX 中查看账本表、视图。
    • 从 SSOX 创建账本表、视图
    • 使用账本表创建 sqlproj。 右键单击“项目”->“添加项”->“表账本(可更新)”或“表账本(仅追加)”
    • 将账本发布到 SQL 数据库

SQL Ledger 选项

Git 工具

调试、诊断和分析

断点组

  • Visual Studio 调试器现在支持断点组,这使你能够快速轻松地管理有序组中的大量断点。
  • 可以使用断点窗口中的“新建”下拉列表创建新的断点组。 若要向现有组添加断点,请右键单击断点,然后选择“添加到断点组”。 还可以将断点拖放到所需的组中。 可启用、禁用和删除这些断点组。 可根据需要单独切换或组合切换断点。

撤消断点组

  • 断点组还支持撤消删除。 可以使用“Ctrl-z”撤消断点组删除操作。

  • 此外,断点组现在还支持依赖断点组。 可以让断点组依赖于其他断点,以便该组仅在命中先决条件断点时激活。

依赖断点组

内存工具见解稀疏数组

  • Visual Studio 内存分析工具现在能够识别和显示稀疏数组。 可以在“见解”选项卡下看到具有稀疏数组的列表对象。
  • 稀疏数组是主要填充了零元素的一个数组,这可能在性能和内存使用方面效率低下。 内存分析工具将自动检测这些数组,并显示由于这些零值而浪费了多少内存。

稀疏数组

  • 调试程序现在支持在各个解决方案中包含 .natstepfilter 和 .natjmc 文件,而不是以前的全局位置。 此更改可使团队内更高效地协作,因为这些文件现在可被视为存储库中的任何其他文件并相应地共享。

检测工具

  • Visual Studio 检测工具现在支持 C++ 代码,从而提供更优的性能分析。 若要访问检测工具,请转到“调试”>“性能探查器”,然后从出现的“探查器”窗口中选择“检测”。
  • 检测数据视图显示按最长运行时间排序的函数列表,以便更轻松地识别潜在瓶颈。 此外,“热路径”部分显示消耗最多 CPU 的函数的调用堆栈,便于进一步了解性能问题。

检测工具

WSL 上用于 .NET 的探查器实时图

  • Visual Studio 分析工具现在还支持在从 dotnet-monitor for WSL 收集时显示实时图形。 WSL 实时指标可用于 .NET 对象分配、CPU 使用率和 .NET 计数器工具。
  • 当该工具最初从 dotnet-monitor for WSL 收集数据时,你可看到实时计数器信息的实时图形,然后可以停止收集并查看有关内存分配、调用树、函数、集合和其他相关数据的详细明细视图。

WSL_Live_Graph

.NET 对象分配工具

  • .NET 对象分配工具现在能够使用 ETL 文件格式从 .NET 数据提供程序导入分配。 例如,如果你有一个 ETL 文件是从包含分配计时事件的 .NET 提供程序获取的,该工具可以执行并显示在该数据中进行的分配。

数据可视化工具

  • 通过 SSH、Docker 或 WSL 在 Unix 上调试 .NET 时,现在可以使用 IEnumerable 和 DataSet 可视化工具检查变量/对象。

跨平台的可视化工具

  • HTML 和 XML 调试器可视化工具现已完全主题化,支持 Visual Studio 的蓝色、浅色和深色主题。

“调用堆栈”和“并行堆栈”窗口

  • “调用堆栈”窗口现在支持搜索功能。 可以在搜索框中添加所需的搜索关键字,然后匹配的调用堆栈帧将突出显示。 该窗口还有一个新的并行堆栈入口点,用于在调试时快速访问该窗口。

调用堆栈搜索

  • 并行堆栈窗口现在具有新的复制功能。 可以双击某个帧以复制堆栈/移动并选择感兴趣的帧/通过单击该行选择特定帧,然后复制并粘贴到本地记事本/excel 以进行进一步评估。

重新附加到进程

  • 重新附加到调试器进程现在会跨会话持久化到解决方案/项目。 因此,即使打开新的 VS 会话,也可以重新附加到之前附加到的进程。

Git 工具增强功能

在生成期间暂存和提交

现在可以在生成期间暂存更改并提交暂存项。 直接提交存在风险,因为文件可能会更改,但现在你可暂存它们,验证文件是否正确,然后再提交它们 - 所有操作均在运行生成期间完成。

GitHub 问题和 Azure DevOps 工作项 - 改进了搜索

改进了提交消息中的问题和工作项集成,你现在可在查询最近未更新的项,或者查询与你无关但属于项目或存储库的项时获得更好的搜索结果。 搜索通过匹配项名称中的完整字符串来实现。 这有助于最大程度地减少浏览器和 Visual Studio 之间的复制粘贴项 ID。

改进了合并对话框

更新了合并对话框,使得可更轻松地了解有多少文件受到影响,并在可能存在冲突时发出警告。

合并对话框

Git 历史记录性能改进

对“Git 历史记录”窗口进行了大幅改进,现在可更快地加载以前的提交项,让你能够比以往更快地深入了解文件和文件夹历史记录!

git 日志演示

新分支和标记命名增强功能

改进了“新建分支”和“新建标记”对话框,现在会将空格自动替换为短划线,避免名称中出现无效字符。

新建分支

GitHub 问题

借助 GitHub 问题集成,可在 VS 中的“提交消息”框中搜索并引用问题,以响应此建议票证。 可键入 # 或单击“提交消息”文本框右下方的 # 按钮来引用问题或拉取请求。 如果你尚未通过身份验证,无法访问相关问题,现在系统会提示你登录,以便利用此功能。

取消暂存行

为了继续改进我们的行暂存(即交互式暂存)功能,我们添加了取消暂存功能。 现在,可以按照取消暂存文件中的单个行和块中的请求,使用工具提示选项逐行取消暂存更改 - 4 票

Arm64

我们继续在 Windows 11 上为最热门的开发人员方案构建对 Arm64 的本机支持。 我们现在支持 Arm64 Visual Studio 上的 .NET 多平台应用 UI (MAUI) 工作负载。

代码搜索和导航

一站式搜索

我们更新了一体化搜索的 UI。

  • 我们为每个结果空出 2 行,以不再过于满满当当。
  • 保留上一次 Visual Studio 会话中的窗口大小和位置。 还会保留所选的预览状态(关闭、右侧或底部)。
  • 默认预览布局设置为底部。

更多信息请访问 https://aka.ms/all-in-one-search-blog

可以通过以下方式启用一站式搜索:工具 > 管理预览功能 >“新的 Visual Studio 搜索体验(需要重启)”

粘滞滚动

粘滞滚动

  • 粘滞滚动有助于确定当前在文件中的位置,并有助于了解所查看的代码的上下文。 滚动代码时,类和方法签名以及其他标头将粘滞在屏幕顶部。 单击标题中的行将导航到该代码。
  • 可使用“粘滞行数上限”自定义行数最大值。
  • 对于“当范围数超过最大值时”,在较高级别的范围“首选外部范围”或较低级别的范围“首选内部范围”之间进行选择。

选项 > 文本编辑器 > 常规 > 粘滞滚动(实验性),通过切换在编辑器窗口的可滚动区域内对当前范围进行分组复选框来启用。

更多信息请访问 https://aka.ms/sticky-scroll-blog

大括号对着色

大括号对着色

借助大括号对着色,可以直观地区分代码的每组左大括号和右大括号,以便更轻松地查看代码的范围或查找任何缺失的大括号。

C#、C++、TypeScript、JavaScript、Visual Basic 和 Razor 支持大括号对着色。

可通过转到“工具”>“选项”>“文本编辑器”并切换“启用大括号对着色”复选框来启用或禁用着色功能。

灯泡性能改进

通过全面重新设计诊断和代码分析体系结构,灯泡/代码操作得到了很大的改进。 我们专注于通过组合低/中/高级别修复来优化启动灯泡所涉及的所有组件。

  • 低级别的修复包括限制树遍历、更高效的字符串处理、提高处理源文本的效率、在诊断代码路径中大幅减少分配、转换、枚举和数据结构级别优化
  • 中等级别的修复包括:在计算 Lightbulb 诊断时取消后台诊断(波形曲线)、优化后台索引、通过限制每个文档适用的分析器来优化针对单个文档运行的查询的诊断引擎、解决多个第一方/第二方分析器(如 PublicAPI 分析器)中的严重低效问题,以及改进缓存模型
  • 高级修复包括重整诊断管道以回答面向范围的问题、推断哪些分析器适用于在特定范围内运行、根据历史运行信息降低慢速分析器的优先级别。

之前与之后

![之前 灯泡需要 7 个周期才能完成](media/17.6/17.6ga-lightbulb-before.gif =400x) ![之后 灯泡即时完成](media/17.6/17.6ga-lightbulb-after.gif =400x)

我们显著提高了 CPU 和内存性能,尤其是大型源文件的性能。 事实上,我们已设法将大型源文件中 Lightbulb 方案的进度栏周期从大约 8-17 个周期减少到少于一个周期,如上面的 gif 所示。

Microsoft Teams 开发工具(Teams 工具包)

  • 添加“Teams 应用程序配置改进”功能标志。 借助 Teams 工具包的预览功能,开发人员可通过 Teams 本机集成将其现有的内部和 SaaS 应用程序引入 Teams。 在 teamsfxapp.yml 文件中,定义 Teams 工具包引擎的功能。
  • 添加深层链接以直接从 Teams 开发人员门户打开 Teams 工具包。 现在可在开发人员门户中打开 Teams 项目,并在 Teams 工具包中进行编辑。
  • 我们推出了一个新的 Teams 应用模板供你开始使用:工作流机器人。 使用新的工作流机器人模板创建可返回自适应卡片以响应用户输入的顺序工作流。
  • 我们还修复了几个 bug。

企业管理

从 Intranet 托管和部署 Visual Studio 布局

除了文件共享外,IT 管理员现在还可在 Intranet 网站上托管和部署布局。 使用 Intranet 位置可简化布局维护并提高安装性能,尤其是对于当前使用多个全局网络文件共享的组织。 查看指南,了解如何启用此体验,并向我们提供反馈,告知我们哪些方面可以改进。

安装程序的“可用”选项卡上“产品/服务”的更新

我们更新了用于控制在查看 Visual Studio 安装程序的“可用”选项卡时提供哪些产品的逻辑。现在应该可以轻松访问当前预览版以及已安装的最新版本 SKU。 IT 管理员还可以通过禁用特定通道或使用新的 HideAvailableTab 策略来禁止显示“可用”选项卡,从而限制某些产品的公开。

最新安装程序随处可得

我们将开始在任何地方交付最新的安装程序,这意味着对 Visual Studio 2017 所有版本及更高版本的所有未来更新都将包含最新的安装程序。 这意味着,我们添加到最新安装程序的任何新功能或 bug 修复(例如回退从布局获得的安装)将自动可用于产品的下层版本。 不再需要在获取脚本中使用 --useLatestInstaller 参数。

现在已为从布局获得的产品安装启用回退

如果产品源源自布局,现在可以回退更新。 只需确保布局包含成功回退所需的包。 此处提供了更多详细信息。

.NET MAUI

  • 请将 .NET MAUI 更新为 7.0.86 (SR6),有关发行说明,请参阅 https://aka.ms/dotnet-maui-releases
  • .NET for Android 33.0.46 的更新
  • .NET for iOS 16.4.7060 的更新

已知问题

  • 使用指向 7.0.3xx SDK 的 Dotnet 格式化用户出现错误,并显示 ReflectionTypeLoadException。 这是由于格式工具中缺少依赖项更新。 临时解决方法是使用 7.0.203。

  • 升级到 .NET 7.0.3xx SDK 时,Razor/Blazor 客户可能会遇到多个组件使用标记“....”形式的错误

    这是由于正在解决的 razor 编译器中的 bug 造成的。 在解决此问题之前,用户可以通过使用 global.json 固定 7.0.20xx SDK 来绕过此问题。  https://github.com/dotnet/razor/issues/8718

  • RoslynPackage 由于 SettingsEditorFactory 依赖项错误而无法初始化 将 Visual Studio 升级到版本 17.6.1 后,某些客户遇到了 Visual Studio 无法加载 Roslyn 和其他包的问题。 出现此问题的原因是程序集不匹配。

    解决方案:若要解决此问题,请将 Visual Studio 升级到版本 17.6.2 并重启 Visual Studio。

    其他解决方案:如果在升级后仍遇到错误,可以尝试删除位于 %LOCALAPPDATA%\Microsoft\VisualStudio\17.0_XXXX\ComponentModelCache 的 MEF 缓存文件,其中 XXXX 是随机 ID。 在删除文件之前,建议先备份这些文件。 然后重启 Visual Studio。

反馈和建议

我们期待你的宝贵意见和建议! 可使用安装程序或 Visual Studio IDE 右上角的“发送反馈”图标,或者通过帮助 > 发送反馈报告问题或提出功能建议 “反馈”图标。 可在 Visual Studio 开发者社区跟踪你的问题,也可在这里添加评论和查找解决方案。 此外,还可通过实时聊天支持获得免费安装帮助。


Blogs

通过参考开发人员工具博客网站中的见解和建议,随时掌握所有新版本的最新最全资讯,并发表有关大量功能的深入分析帖子。


返回页首