Visual Studio 2022 版本 17.0

支持的时间范围

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

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

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

Visual Studio Community 版本仅在具有 Visual Studio 最新次要版本的最新服务版本的当前频道上受支持。 你可以从 visualstudio.microsoft.com/downloads 或 my.visualstudio.com 安装最新版本的 Visual Studio Community

Visual Studio 2022 版本 17.0 发行

  • 2023 年 3 月 14 日 — Visual Studio 2022 版本 17.0.20 NewReleaseIcon
  • 2023 年 2 月 14 日 — Visual Studio 2022 版本 17.0.19
  • 2023 年 1 月 10 日 - Visual Studio 2022 版本 17.0.18
  • 2022 年 12 月 13 日 - Visual Studio 2022 版本 17.0.17
  • 2022 年 11 月 8 日 - Visual Studio 2022 版本 17.0.16
  • 2022 年 10 月 11 日 Visual Studio 2022 版本 17.0.15
  • 2022 年 9 月 13 日 - Visual Studio 2022 版本 17.0.14
  • 2022 年 8 月 9 日 - Visual Studio 2022 版本 17.0.13
  • 2022 年 7 月 12日 - Visual Studio 2022 版本 17.0.12
  • 2022 年 6 月 14 日 - Visual Studio 2022 版本 17.0.11
  • 2022 年 5 月 10 日 - Visual Studio 2022 版本 17.0.10
  • 2022 年 4 月 19 日 - Visual Studio 2022 版本 17.0.9
  • 2022 年 4 月 12 日 - Visual Studio 2022 版本 17.0.8
  • 2022 年 3 月 8 日 — Visual Studio 2022 版本 17.0.7
  • 2022 年 2 月 8 日 — Visual Studio 2022 版本 17.0.6
  • 2022 年 1 月 13 日 — Visual Studio 2022 版本 17.0.5
  • 2021 年 12 月 16 日 — Visual Studio 2022 版本 17.0.4
  • 2021 年 12 月 14 日 — Visual Studio 2022 版本 17.0.3
  • 2021 年 11 月 30 日 — Visual Studio 2022 版本 17.0.2
  • 2021 年 11 月 16 日 — Visual Studio 2022 版本 17.0.1
  • 2021 年 11 月 8 日 — Visual Studio 2022 版本 17.0.0
  • Visual Studio 2022 博客

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

  • Visual Studio 2022 版本 17.0 现已正式发布!
  • 17.0.20 Visual Studio 2022 版本 17.0.20

    发布日期:2023 年 2 月 14 日

    此版本 17.0.20 中解决的问题

  • Microsoft 已意识到 SMTPClient 类中可能存在 SMTP 地址注入的漏洞。 这对应于 CVE-2022-26893 (不是已发布的 CVE,因为漏洞被评估为中等) 。
  • Git 2.39 已将 credential.helper 的值从“manager-core”重命名为“manager”。 有关详细信息,请参阅 https://aka.ms/gcm/rename
  • 将 mingit 和 Git for Windows 包汇报到 v2.39.2,用于解决 CVE-2023-22490 的问题
  • 已解决的安全公告

  • CVE-2023-22490 Mingit 远程代码执行漏洞
  • CVE-2023-22743 适用于 Windows 安装程序的 Git 特权提升漏洞
  • CVE-2023-23618 Git for Windows 远程代码执行漏洞
  • CVE-2023-23946 Mingit 远程代码执行漏洞
  • 17.0.19 Visual Studio 2022 版本 17.0.19

    发布日期:2023 年 2 月 14 日

    此次发布的 17.0.19 中已解决的问题

  • 已将 CPython 解释器更新至版本 3.9.13。
  • 已将适用于 Windows 的 mingit 和 Git 包更新至 v2.39.1.1,这解决了 CVE-2022-41903
  • 已解决的安全公告

  • CVE-2023-21566 Visual Studio 安装程序特权提升漏洞

  • CVE-2023-21567 Visual Studio 拒绝服务漏洞

  • CVE-2023-21808 .NET 和 Visual Studio 远程代码执行漏洞

  • CVE-2023-21815 Visual Studio 远程代码执行漏洞

  • CVE-2023-23381 Visual Studio Code 远程代码执行漏洞

  • CVE-2022-23521 gitattributes 分析整数溢出

  • CVE-2022-41903 git archive git log --format 中的堆溢出导致 RCE

  • CVE-2022-41953 Git GUI 克隆远程代码执行漏洞

    17.0.18 Visual Studio 2022 版本 17.0.18

    发布日期:2023 年 1 月 10 日

    已解决的安全公告

  • CVE-2023-21538 .NET 拒绝服务漏洞 .NET 6.0 中存在拒绝服务漏洞,其中恶意客户端可能会导致堆栈溢出,这可能会在攻击者向公开的终结点发送无效请求时导致拒绝服务攻击。

    17.0.17 Visual Studio 2022 版本 17.0.17

    发布时间:2022 年 12 月 13 日

    已解决的安全公告

  • CVE-2022-41089 远程代码执行 .NET Core 3.1、.NET 6.0 和 .NET 7.0 中存在远程代码执行漏洞,恶意执行组件可能会导致用户因分析恶意制作的 xps 文件而运行任意代码。
  • 17.0.16 Visual Studio 2022 版本 17.0.16

    发布时间:2022 年 11 月 8 日

    此次发布的 17.0.16 中已解决的问题

    已解决的安全公告

  • CVE-2022-41119 远程代码执行 Visual Studio 中的堆溢出漏洞
  • CVE-2022-39253 信息泄露 默认情况下,本地克隆优化取消引用符号链接
  • 17.0.15 Visual Studio 2022 版本 17.0.15

    发布日期:2022 年 10 月 11 日

    此次发布的 17.0.15 中已解决的问题

  • 管理员将能够从布局更新脱机客户端计算机上的 VS Installer,而无需更新 VS。
  • 已解决的安全公告

  • CVE-2022-41032 .NET 特权提升漏洞 .NET 7.0.0-rc.1、.NET 6.0、.NET Core 3.1 和 NuGet 客户端(NuGet.exe、NuGet.Commands、NuGet.CommandLine、NuGet.Protocol)存在漏洞,恶意执行组件可能导致用户执行任意代码。
  • 17.0.14 Visual Studio 2022 版本 17.0.14

    发布日期:2022 年 9 月 13 日

    此次发布的 17.0.14 中已解决的问题

    已解决的安全公告

    CVE-2022-38013 .NET 拒绝服务漏洞 ASP.NET Core 3.1 和 .NET 6.0 中存在拒绝服务漏洞,其中恶意客户端可能会导致堆栈溢出,这可能会在攻击者发送在模型绑定期间分析的自定义有效负载时导致拒绝服务攻击。

    17.0.13 Visual Studio 2022 版本 17.0.13

    发布日期:2022 年 8 月 9 日

    此次发布的 17.0.13 中已解决的问题

  • 解决了 17.1.4 更新后的 Git 错误 - Visual Studio 反馈提供了通过 Visual Studio 将 git 存储库标记为安全的选项。
  • 将 MinGit 更新到版本 2.37.1.1 以解决 CVE - CVE-2022-29187 (mitre.org) 问题,该问题会让用户受到漏洞的危害,即导航到用户拥有的但其他用户可以写入的存储库可能会被利用来运行恶意代码。
  • 将适用于 Windows 的 Git 更新为 v2.37.1.1,用于解决 CVE-2022-31012。
  • 已解决的安全公告

  • CVE-2022-34716 .NET 信息泄露漏洞 .NET 6.0 和 .NET Core 3.1 中存在信息泄露漏洞,可能导致未经授权的特权信息访问。
  • CVE-2022-31012 远程代码执行 适用于 Windows 的 Git 的安装程序可能会被欺骗执行不受信任的二进制文件
  • CVE-2022-29187 特权提升 恶意用户可以在超级用户拥有的文件夹中创建 .git 目录
  • CVE-2022-35777 远程代码执行 Visual Studio 2022 预览版 Fbx 文件分析程序堆溢出漏洞
  • CVE-2022-35825 远程代码执行 Visual Studio 2022 预览版 Fbx 文件分析程序 OOBW 漏洞
  • CVE-2022-35826 远程代码执行 Visual Studio 2022 预览版 Fbx 文件分析程序堆溢出漏洞
  • CVE-2022-35827 远程代码执行 Visual Studio 2022 预览版 Fbx 文件分析程序堆 OOBW 漏洞
  • 17.0.12 Visual Studio 2022 版本 17.0.12

    发布时间:2022 年 7 月 12 日

    此次发布的 17.0.12 中已解决的问题

  • 更新了 LibraryManager 以适应 cdnjs API 的更改
  • 修复了文本编辑器在打开文档时为空或在键入时崩溃的 bug。
  • 已解决的安全公告

  • CVE-2022-24513 特权提升漏洞 当 Microsoft Visual Studio 更新程序服务错误分析本地配置数据时,存在潜在的特权提升漏洞。
  • 17.0.11 Visual Studio 2022 版本 17.0.11

    发布日期:2022 年 6 月 14 日

    此次发布的 17.0.11 中已解决的问题

  • 将并行 Dev 16.11 C++ 工具集更新到版本 14.29.30145.00。 最新版本的 Dev 16.11 C++ 工具集包含重要的 bug 修复,包括修复所有剩余的 C++20 缺陷报告。 有关详细信息,请参阅 16.11.14 发行说明
  • 来自开发者社区

  • 修复了 HostPath 包失败并显示退出代码 259 的问题,将禁止显示退出代码并将其报告为警告,从而使得 Visual Studio 安装程序完成
  • 已解决的安全公告

    CVE-2022-30184 .NET 信息泄露漏洞 NuGet 内的 .NET 6.0 和 .NET Core 3.1 中存在漏洞,其中可能发生凭据泄漏。
  • CVE-2022-24513 特权提升漏洞 当 Microsoft Visual Studio 更新程序服务错误分析本地配置数据时,存在潜在的特权提升漏洞。
  • 17.0.10 Visual Studio 2022 版本 17.0.10

    发布日期:2022 年 5 月 10 日

    此次发布的 17.0.10 中已解决的问题

  • 已将 Visual Studio 使用的 Git for Windows 版本以及可安装可选组件更新到 2.36.0.1
  • 修复了 git 集成的问题,其中,如果拉取/同步已分离的分支,则输出窗口不会显示有关如何解决该问题的本地化提示。
  • 修复了一个问题:在 Visual Studio 中打开 Git 存储库时,输出窗口显示“发生了一个或多个错误”,而不是显示失败发生的原因以及如何解决。
  • 更新了 Daytona 中的 webview2 基线
  • 来自开发者社区

  • Visual Studio 2022 在每次运行时重新生成整个网站项目
  • 已解决的安全公告

    [ CVE-2022-29117 .NET 拒绝服务漏洞 .NET 6.0、.NET 5.0 和 .NET Core 3.1 中存在漏洞,恶意客户端可以操纵 Cookie 并导致拒绝服务。

    CVE-2022-23267 .NET Core 拒绝服务漏洞 .NET 6.0、.NET 5.0 和 .NET Core 3.1 中存在漏洞,恶意客户端可利用通过 HttpClient 分配的过量内存导致拒绝服务。

    CVE-2022-29145 .NET 拒绝服务漏洞 .NET 6.0、.NET 5.0 和 .NET Core 3.1 中存在漏洞,恶意客户端可在解析 HTML 表单时导致拒绝服务。

    CVE-2022-24513 特权提升漏洞 当 Microsoft Visual Studio 更新程序服务错误分析本地配置数据时,存在潜在的特权提升漏洞。

    17.0.9 Visual Studio 2022 版本 17.0.9

    发布日期:2022 年 4 月 19 日

    此次发布的 17.0.9 中已解决的问题

  • 修复了 17.0.8 的 vctip.exe 回归
  • 修复了阻止某些使用地址擦除器 (ASAN) 构建的应用程序在 Windows 11 中加载的 bug。
  • 修复了另一个 ASAN 问题,在该问题中,具有堆争用的多线程应用程序可能会遇到死锁、错误的“野指针释放”报告或进程退出期间的死锁。
  • 修复了“无法在脱机计算机上安装 Visual Studio 的任何扩展 (vsix)”问题。
  • 17.0.8 Visual Studio 2022 版本 17.0.8

    发布日期:2022 年 4 月 12 日

    此次发布的 17.0.8 中已解决的问题

  • 修复了即使关联的测试执行已完成的情况下,导致测试执行的某些动画在后台运行的问题。 这会导致高刷新率监视器上出现特别明显的速度放缓。 此修补程序应会改进在高刷新率监视器上使用 VS 的体验。
  • 解决了长时间使用 TFVC(超过一个小时)时,Visual Studio 挂起/冻结的问题
  • 添加了安装程序命令行以删除未使用的通道。
  • 来自开发者社区

    已解决的安全公告

    CVE-2022-24765 特权提升漏洞 Git for Windows 中存在潜在的特权提升漏洞,其中 Git 操作可以在存储库外部运行,同时搜索 Git 目录。 Git for Windows 现已更新为版本 2.35.2.1。

    CVE-2022-24767 DLL 劫持漏洞 在 SYSTEM 用户帐户下运行卸载程序时,Git for Windows 安装程序中存在潜在的 DLL 劫持漏洞。 Git for Windows 现已更新为版本 2.35.2.1。

    CVE-2022-24513 特权提升漏洞 当 Microsoft Visual Studio 更新程序服务错误分析本地配置数据时,存在潜在的特权提升漏洞。

    17.0.7 Visual Studio 2022 版本 17.0.7

    发布日期:2022 年 3 月 8 日

    此次发布的 17.0.7 中已解决的问题

  • 改进了在高刷新率监视器上的性能。
  • 修复了 Community SKU 用户的 Visual Studio 启动期间挂起的问题。
  • 来自开发者社区

    开发者社区提供了 17.0 中可用修复的完整列表

  • 在 300hz 监视器刷新速率下发生大规模可重现的 VS UI 速度减慢
  • VSSDK:VS 17.1.0 预览版 5.0 在 IVsObjectManager.UnregisterLibMgr() 之后挂起
  • 已解决的安全公告

    CVE-2020-8927 漏洞 .NET 5.0 和 .NET Core 3.1 中存在远程代码执行漏洞,其中在 1.0.8 之前的 Brotli 库版本中存在缓冲区溢出。

    CVE-2022-24464 漏洞 分析某些类型的 http 表单请求时,.NET 6.0、.NET 5.0 和 .NET CORE 3.1 中存在拒绝服务漏洞。

    CVE-2022-24512 漏洞 .NET 6.0、.NET 5.0 和 .NET Core 3.1 中存在远程代码执行漏洞,其中堆栈缓冲区溢出发生在 .NET Double Parse 例程中。

    CVE-2021-3711 OpenSSL 缓冲区溢出漏洞 OpenSSL 中存在潜在的缓冲区溢出漏洞,Git for Windows 会使用该漏洞。 Git for Windows 现已更新为版本 2.35.1.2,解决了此问题。

    17.0.6 Visual Studio 2022 版本 17.0.6

    发布时间:2022 年 2 月 8 日

    此次发布的 17.0.6 中已解决的问题

  • 更新了 Visual Studio 安装程序以正确记录通道元数据。
  • 在 Visual Studio 安装程序中发布了有关安装或更新的公告。
  • 更新设置 对话框中添加了有关 LTSC 通道 到期日期的信息。
  • 添加了以编程方式更改 更新的源位置 的功能,而与实际执行更新无关。 这使 IT 管理员能够 以编程方式更改更新通道
  • 更新了 GitHub 添加帐户体验以提高其成功率。
  • 已解决的安全公告

    CVE-2022-21986 漏洞 当 Kestrel Web 服务器处理某些 HTTP/2 和 HTTP/3 请求时,.NET 5.0 和 .NET 6.0 中存在拒绝服务漏洞

    17.0.5 Visual Studio 2022 版本 17.0.5

    发布时间:2022 年 1 月 13 日

    此次发布的 17.0.5 中已解决的问题

  • 解决了在使用易失元数据检测二进制文件时 VSInstr 不会退出,从而导致检测分析失败的偶然情况。
  • 修复了在生成 PDB 和二进制文件时 link.exe 偶尔会崩溃或挂起的问题。
  • 修复了 C++ Concurrency::parallel_for_each 中由于整数溢出导致调用进程崩溃的 bug。
  • 修复了在 C++20 和 C++Latest 语言模式下 ATL 的 CString 比较中的 bug。
  • 修复了在使用大量 pogo 探针时在 arm64 和 arm64ec 上执行 PGI-ed 二进制文件期间出现崩溃的问题。
  • 修复了优化非常大型的函数可能会生成错误代码的问题。
  • 17.0.4 Visual Studio 2022 版本 17.0.4

    发布时间:2021 年 12 月 16 日

    此次发布的 17.0.4 中已解决的问题

  • 添加了 Xcode 13.2 支持。
  • 17.0.3 Visual Studio 2022 版本 17.0.3

    发布时间:2021 年 12 月 14 日

    此次发布的 17.0.3 中已解决的问题

    双向文本控制字符呈现

    为了防止潜在的恶意利用导致错误表示代码,Visual Studio 编辑器将不再允许双向文本控制字符来操纵编辑表面上的字符顺序。 一个新选项将使这些双向文本控制字符与占位符一起显示。 双向文本控制字符仍将出现在代码中,因为此行为仅影响代码编辑器中呈现的内容。

    此功能在“工具”\“选项”中控制。 在“文本编辑器”\“常规”页面下,存在“显示双向文本控制字符”选项,默认情况下会选中此选项。 选中后,所有双向文本控制字符都将呈现为占位符。 取消选中该选项将还原为先前不呈现这些字符时的行为。

    如果 Unicode 字符属于以下任一范围,则将其视为双向文本控制字符:U+061c、U+200e-U+200f、U+202a-U+202e、U+2066-U+2069。

  • 修复了 Web Forms 设计器中出现崩溃的问题
  • 修复了一个问题,即 !important 的 CSS 补全会在 HTML 或 Razor 文件中的错误位置插入文本。
  • 修复了一个回归问题,即 Xamarin.Forms XAML 热重载与共享类似依赖项的库(例如 SignalR)冲突。 无论应用程序中加载了什么内容,Xamarin.Forms XAML 热重载现在都应该能够进行交互操作。
  • 修复了“项目概览”页面、“诊断工具”或“性能探查器”窗口有时为空白的问题。
  • 修复了 razor 文件编辑时的一个问题,即在键入过程中光标有时会跳到其他位置。
  • 来自开发者社区

    开发者社区提供了 17.0 中可用修复的完整列表

  • Visual Studio 2022 + Xamarin + SignalR 中的 bug(未找到方法)
  • HtmlLanguageClient:HtmlLanguageClient 无法初始化。 Microsoft Visual Studio Community 2022 Preview(64 位)版本 17.0.0 预览版 5.0
  • 在 .razor 文件 (Blazor) 中进行 css 编辑时会发生奇怪的情况
  • 在 blazor 页面 (*.razor) 中,将分号添加到 c# 代码行会导致光标跳转
  • 已解决的安全公告

    CVE-2021-43877 .NET 漏洞 ANCM 中存在一个特权提升漏洞,当 .NET Core、.NET 5 和 .NET 6 应用程序托管在 IIS 中时,该漏洞可能会允许提升特权。

    CVE-2021-42574 双向文本漏洞 双向文本控制字符可用于使代码在编辑器中的呈现与磁盘上所包含的内容不同。

    17.0.2 Visual Studio 2022 版本 17.0.2

    发布时间:2021 年 11 月 30 日

    此次发布的 17.0.2 中已解决的问题

  • 修复了使用重叠数据进行类似 memmove 的操作时出现的无提示错误 codegen
  • 添加了使用 C++ 模块或标头单元时在 输出窗口中显示的消息 。 这包含在 IntelliSense 中使用模块或标头单元的当前已知问题。
  • 修复了 CMake 概览页面和 CMakeSettings 编辑器卡在“正在等待 IntelliSense 完成初始化…”的问题
  • 更正了在具有数据成员初始值设定项的类层次结构中涉及的模板化析构函数可能过早实例化的问题(该问题可能会导致有关未定义类型的使用或其他错误的错误诊断)。
  • 将 Python 3.9.7 添加到了 Python 工作负载。 由于安全漏洞,删除了 Python 3.7.8。
  • 修复了查找下一个 (F3) 和查找并选择下一个 (Ctrl+F3) 有时会跳转到文件中的第一个匹配项而不是下一个匹配项的问题。
  • 解决了版本控制用户界面中的日期不符合客户操作系统区域设置的问题。
  • 解决了 Windows 11 客户将 Windows 终端设置为默认而调试器无法正确停止调试控制台应用并阻止未来启动的问题。
  • 来自开发者社区

    开发者社区提供了 17.0 中可用修复的完整列表

  • 如果在 Visual Studio 2022 中选择了单行的一部分,则无法搜索所选内容
  • Blazor C# 补全有时会显示错误信息
  • PackageId:AndroidImage_x86_API25_Private;PackageAction:Install;ReturnCode:3;
  • 按 Ctrl+F3 有时会跳到文档顶部
  • 从 Visual Studio 2019 到 Visual Studio 2022,按 Ctrl+f3 的行为已更改
  • Visual Studio 2022 测试资源管理器始终将测试显示为“未运行”
  • Blazor razor 组件中的 Intellisense
  • Visual Studio 2022 在源代码管理树中显示错误的添加/删除图标
  • VS 2022 IntelliSense 需要一段时间,在某些情况下甚至也不会出现。
  • Razor 文件 (.cshtml) 中的 Intellisense 在 VS 2022 中仍然不起作用
  • 17.0.1 Visual Studio 2022 版本 17.0.1

    发布时间:2021 年 11 月 16 日

    此次发布的 17.0.1 中已解决的问题

  • 修复了使用批生成时发生崩溃的问题。
  • 修复了在启用 XAML 热重载的情况下启动 Xamarin.Forms 项目时发生崩溃的问题。
  • 来自开发者社区

    开发者社区提供了 17.0 中可用修复的完整列表

  • Visual Studio 2022 探查器未给出有关分析代码的任何信息
  • 性能探查器 .diagsession 视图在调整窗格大小时冻结
  • 17.0.0 Visual Studio 2022 版本 17.0.0

    发布时间:2021 年 11 月 8 日

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

  • devenv.exe 现仅 64 位
  • Azure 云服务

  • 对于新客户,由于在 Azure 中新的 Azure 云服务(经典)项目已弃用,因此不支持该项目。 建议替换为 Azure 云服务(外延支持)项目。
  • 现有的 Azure 云服务(经典)项目可以打开并且完全受支持。
  • v143 生成工具现可通过 Visual Studio 安装程序以及 独立的生成工具 来使用。
  • 在调试程序下运行时,在本机 C++ 应用程序中现在可以使用新的热重载体验。 它同时支持 MSBuild 和 CMake 项目。 有关详细信息,请参阅下面的 热重载部分
  • 你现在可以在 WSL2 上进行本机生成和调试,而无需建立 SSH 连接。 跨平台的 CMake 项目和基于 MSBuild 的 Linux 项目均受支持。
  • Visual Studio 现在支持在 CMakePresets.json 中使用 buildPresets.targets 选项。 这样用户可以在 CMake 项目中生成目标的子集。
  • CMake 项目中的“项目”菜单已经过简化,显示“删除缓存并重新配置”和“查看缓存”选项。
  • 已更新 CMake 概述页,以支持 CMakePresets.json。
  • 实现了 /scanDependencies 标志,用于为 CMake 项目输出 C++20 模块依赖项,如 P1689r4 中所述。 这是为了支持使用 CMake 生成基于模块的项目而迈出的一步,我们正致力于在更高版本中完成此支持。
  • 现在可以使用 LLDB 从 Visual Studio 调试在远程系统上运行的进程。
  • 我们将 Visual Studio 附带的 CMake 版本升级到了版本 3.21。 有关可用内容的详细信息,请参阅 CMake 3.21 发行说明
  • Visual Studio 附带的 LLVM 工具已升级到 LLVM 12。 有关详细信息,请参阅 LLVM 发行说明
  • MSVC 工具集现在默认为 调试记录中的 SHA-256 源哈希 。 以前,工具集默认使用 MD5 进行源哈希处理。
  • 使用 C++ 工作负载的游戏开发现在安装了支持 Visual Studio 2022 的最新 Unreal Engine。
  • 改进了 C++ IntelliSense,为导入的模块和标头单元中的类型提供了导航和语法突出显示功能。
  • 通过优化缓存标头使用情况和对符号数据库的访问,以及通过提升进入代码的访问速度,改进了 C++ IntelliSense 的性能。
  • IntelliSense Code Linter for C++ 现在默认为启用状态,提供对常见代码缺陷的即时建议和修复建议。
  • 支持开关 -fsanitize=fuzzer 下的 libfuzzer。 有关更多详细信息,请参阅 文档
  • 我们改进了代码分析工具中的空指针取消引用检测。
  • 代码分析现在强制检查用 _Check_return_ _Must_inspect_result_ 批注的函数的返回值。
  • 添加了对 gsl::not_null 的支持以进行代码分析。
  • 已更新到 C++ 移动开发工作负载中的 NDK r21 LTS。
  • C++ AMP 标头现已弃用。 在 C++ 项目中包含 <amp.h> 将产生生成错误。 若要禁止提示错误,请定义 _SILENCE_AMP_DEPRECATION_WARNINGS 。 有关更多详细信息,请参阅 AMP 弃用链接
  • 调试和诊断

  • “附加到进程”对话框改进
  • 异常帮助程序改进
  • 强制运行到单击处
  • 内存转储诊断分析
  • 我们发布了一种称为“依赖断点”的新型断点,可用于将某个断点配置为仅在首次命中另一个断点时启用。
  • 我们已向“外部源”节点添加了更多更新,你现在可以在子节点“无源模块”下看到模块,并从解决方案资源管理器本身加载符号。
  • 断点槽改进
  • 解决方案资源管理器中的外部源节点
  • “附加到进程”对话框改进
  • 为垂直和水平选项卡添加了为选项卡着色功能
  • 添加了主题包并与 VS Code 主题作者合作推出 自定义主题集合
  • 内置 主题转换器 以将 VS Code 主题转换为在 Visual Studio 2022 中有效
  • 添加了将 Visual Studio 主题与 Windows 主题同步的功能
  • 添加了新的文档管理功能,包括自定义选项卡宽度、加粗活动文档和 docwell 中的额外关闭按钮。
  • 添加了子词导航
  • 自动保存现已作为预览功能提供
  • 多插入点复制/粘贴体验
  • 从 Microsoft.VisualStudio.Language.Client 程序集中删除了 API
  • VS SDK 包含多个中断性变更,Visual Studio 2019 扩展将不在 2022 中运作。 有关详细信息,请参阅 VSSDK 文档
  • VS SDK 引用程序集不再安装到 VSSDK\VisualStudioIntegration\Common\Assemblies 文件夹中。 如果生成依赖于这些程序集,请迁移你的项目以改用 NuGet 包。 对于脱机情况:
    1. 保留用于还原 nuget 包的组织中的 nuget 源。
    2. 签入二进制文件。
    3. 添加了 ILanguageClient 中断性变更修补程序
    4. Azurite 将用于 Azure 存储的本地仿真,而不是旧的且不再积极开发的 Azure 存储仿真器。
    5. Git 工具

    6. 跨不同存储库的任何解决方案(即项目托管在不同 Git 存储库中的解决方案) 通过预览标志 支持多存储库
    7. 创建 git 存储库体验现在完全支持 发布到 Azure DevOps
    8. 状态栏增强功能,包括 从空 VS 查看和打开存储库的新功能 显示未提取提交的计数
    9. “Git 更改”窗口上的溢出菜单现在仅适用于包含其他 Git 操作的本地存储库
    10. 统一差异工具栏,包含添加/删除行数和可发现配置选项
    11. 提交详细信息增强功能,包括响应速度更快且易于使用的 UI
    12. 在 17.0 中,我们根据入门材料和有用的提示/技巧重新设计了“帮助”菜单。
    13. 它还通过添加一些功能(如访问开发者社区、发行说明、Visual Studio 产品路线图和社交媒体页面)来与开发团队进行更多的协作。
    14. 热重载体验

    15. .NET 开发人员现在可通过 Visual Studio 调试器使用热重载功能,而无需适用于许多 .NET 6 应用程序类型的调试器
    16. C++ 开发人员可以通过 Visual Studio 调试器使用热重载功能
    17. 有关更多详细信息,请参阅上面的链接

      IntelliCode

    18. 整行补全 根据当前上下文预测下一段 C# 代码,并在光标右侧将其显示为内联建议。
    19. 整行补全 现在 与 JetBrains ReSharper 的最新版本兼容 。 请注意,不支持根据 ReSharpers 自定义补全列表项选项更新行补全上下文,必要时,ReSharper 用户可以改为使用 Visual Studio 原生 IntelliSense,如 此处 所述
    20. JavaScript/TypeScript

    21. 我们发布了一个新的 JavaScript/TypeScript 项目类型,该类型使用附加工具生成独立的 JavaScript/TypeScript 项目。 你将能够使用计算机上安装的框架版本在 Visual Studio 中创建 Angular 和 React 项目。
    22. JavaScript 和 TypeScript 测试现已在 Visual Studio 测试资源管理器中提供
    23. 可使用 NPM GUI,因此现在可以按照下载 Nuget 包的相同方式下载 NPM 模块
    24. .NET 6 SDK

    25. Visual Studio 2022 中包含 .NET 6 SDK
    26. .NET 效率

    27. 引入参数重构可将新参数从方法实现移动到其调用方。
    28. 用于数据流分析的“跟踪值源”
    29. 用于为重新分配的变量添加下划线的选项
    30. 在“生成重写”对话框中添加了搜索选项
    31. XML <code> 标记的快速信息现在保留空格和 CDATA 块
    32. “查找所有引用”窗口现在将对多目标项目进行分组
    33. 用于在 Visual Basic 中移除重复类型的重构
    34. 转到“实现”将不再导航到具有同样被重写的抽象声明的成员。
    35. 同步命名空间以匹配解决方案资源管理器中的文件夹结构
    36. 从解决方案资源管理器配置后台代码分析
    37. 新的 .NET 项目现在默认启用可为空引用类型
    38. C# 10.0 文件范围的命名空间重构
    39. 导航到已取消编译的源现在默认为启用状态
    40. 重构为首选 null 检查,而非类型检查
    41. XML 注释现在会在方法显式引发异常时自动生成 <exception> 标记
    42. “继承边距”现在默认为启用状态
    43. Razor (ASP.NET Core) 编辑器

    44. 减少了 UI 冻结并提高了解决方案启动时的性能
    45. 在某些解决方案中,语义着色速度提升高达 2 倍
    46. Razor 文件中的 F7(查看代码)支持
    47. Razor 文件中的代码片段支持,现在只需使用一个选项卡(而不是两个)即可完成代码片段会话
    48. 当存在嵌套的 HTML 和 Razor 组件时,@code 块中会提供更好的格式设置
    49. Razor 文件中的热重载支持
    50. 格式设置和缩进增强功能
    51. 新的 Razor 编辑器颜色
    52. TagHelper 现已着色,并具有快速信息分类支持和完成工具提示
    53. Razor 构造的尖括号突出显示和导航
    54. 注释现在具有自动完成、智能缩进、自动包含注释延续和块注释导航
    55. 在远程环境(如 Linux 容器、WSL 和通过 SSH 连接)上启用运行测试的非常早的试验性预览。
    56. 测试工具支持

    57. 在测试资源管理器中显示
    58. 从 17.0 开始的新测试平台版本将无法运行一般测试和顺序测试。 这些特定功能仅作为 MSTestv1 早期版本的一部分提供,不包含在 MSTestv2 中。 我们发现这些功能的使用率非常低,而顺序测试现在被认为与最佳测试做法背道而驰。
    59. 一些测试体验在 17.0 中将不可用,包括创建新的 TestSettings 文件和 TestSettings 编辑器。 测试运行仍然可以使用 TestSettings 文件,但是 TestSettings 被 RunSettings 替换了,我们鼓励用户迁移改进的性能和功能。 了解详细信息
    60. Web 负载测试和编码的 UI 测试支持更新。 编码的 UI 测试 和 [Web 负载测试](基于云的负载测试服务生命周期结束 | Azure DevOps 博客 (microsoft.com))已于 2019 年正式弃用。 为了尽量减少对用户的影响,Visual Studio 2022 中对这些功能提供了最低支持。 强烈建议用户停止编码的 UI 测试和 Web 负载测试。
    61. UWP 扩展 SDK 的工具箱填充

    62. UWP 扩展 SDK 现在需要显式声明要在工具箱中显示的类型,方法是在其 SdkManifest.xml 文件 中列出这些类型。 早期版本的 Visual Studio 行为不变。它们将忽略清单中的控件列表,并动态枚举 SDK 程序集中的控件类型。
    63. 受信任的位置

    64. 我们改进了“信任设置”功能,现在,每当用户要在 IDE 中打开不受信任的代码(例如文件、项目或文件夹)时,可以显示警告。
    65. 现在,可在解决方案文件夹级别完成信任检查
    66. 用户创建的项目会自动添加到受信任列表中
    67. 用户可以跳过对由 Visual Studio 创建的临时位置的信任检查
    68. 更新、LTSC 和部署

    69. 使用 Visual Studio 2022,将在秋季和春季发布多个同时支持的服务基线。 有关更多详细信息,请参阅 Visual Studio 发行节奏文档 Visual Studio 2022 产品生命周期
    70. Visual Studio 2022 附带的新安装程序现在可以配置 Visual Studio 产品应从何处获取更新。 这使你能够从不同的 LTSC 中选择更新,或者,如果你处于托管企业环境中,则可以将客户端配置为从布局中获取更新。 配置更新源的能力是 Visual Studio 安装程序附带的新功能,因此该行为也适用于 Visual Studio 的下层版本,例如 Visual Studio 2019。 有关配置更新频道的其他信息,请参阅 更新 Visual Studio 文档。 有关使此功能适用于网络布局的其他信息,请参阅 Visual Studio 管理员指南
    71. IT 管理员现在无需安装 Visual Studio 即可报告问题
    72. 已更新并刷新默认图标。
    73. Web 工具

    74. 现在,“发布摘要”页在“托管”部分右上角的“…”菜单下提供启动/停止远程调试和分析的操作
    75. “连接的服务”页现在包含一个启动存储资源管理器的操作
    76. .NET 6 随附的“ASP.NET Core Empty”模板正在使用我们已开始为其添加支持的新的 “最小 API” 范例
    77. Azurite 将用于 Azure 存储的本地仿真,而不是旧的且不再积极开发的 Azure 存储仿真器。
    78. 可以通过 Visual Studio 中的连接服务体验,使用 Microsoft 标识平台 向 ASP.NET Core 应用程序添加身份验证。
    79. .NET Framework 的 WPF XAML 设计器

    80. 将当前面向 .NET Framework 的 WPF XAML 设计器替换为面向 .NET Framework 的新版 WPF XAML 设计器,它以用于面向 .NET (.NET Core) 的 WPF XAML 设计器的相同体系结构为基础。 Visual Studio 的体验看起来是一样的,但是第三方控件供应商需要支持新的可扩展性模型,因为基于 .design.dll Microsoft.Windows.Design.Extensibility 的上一个模型已启用。 如果已为 .NET (.NET Core) 创建了一个 .designtools.dll 扩展,则同样的扩展也适用于面向 .NET Framework 的新版 WPF XAML 设计器。 请参阅下面的 迁移文档 ,以获取有关如何迁移到新的扩展性模型的详细信息。
    81. XAML 热重载

    82. XAML 热重载更改 - 对应用内工具栏和设置进行很小的更改
    83. XAML 实时预览

    84. 在 Android Emulator 中运行应用或将应用作为 UWP 桌面应用运行的 WPF、UWP、WinUI 和 Xamarin.Forms 开发人员现在可以使用 XAML 实施预览功能。 实时预览捕获正在运行的应用程序用户界面,并将其引入 Visual Studio 中的停靠窗口。 这样可以更轻松地使用 XAML 热重载更改应用,同时在 Visual Studio 内部查看这些更改,而无需在进行实时 XAML 代码更改时在正在运行的应用与 Visual Studio 之间来回切换。
    85. 有关更多信息,请单击下面的链接。

      XAML 示例数据

    86. 现在使用 WPF 应用程序中的工具箱创建 DataGrid、ListBox 和 ListView 控件时,默认将添加设计时示例数据。 要禁用此行为,请取消选中“工具”->“选项”->“XAML 设计器”下的“创建元素时自动添加示例数据。”
    87. 若要详细了解示例数据,请访问 示例数据文档
    88. 改进了 XAML 绑定体验

    89. 我们进行了大量改进以使数据绑定变得快速而简单,例如从属性检查器快速访问“数据绑定”对话框、能够从“快速操作”设置绑定、能够在“数据绑定”对话框中选择要绑定到的属性。
    90. 有关更多信息,请单击下面的链接。

      使用 .NET 的移动开发

    91. iOS 15 更新后 Xamarin iOS 部署失败
    92. 线程“main”中出现 Android Designer 异常 java.lang.NullPointerException
    93. VS 2022 中的 iOS 部署失败
    94. Android 设备管理器没有可用的基本设备
    95. 远程模拟器上的 iOS 应用“安装失败”
    96. 传统 iOS 项目属性页无法打开,出现“对象空引用异常”
    97. 无法为 Xamarin iOS 创建存档
    98. 无法部署到 iPhone,错误 MT1001:无法在指定目录中找到应用程序
    99. Python 工具

    100. Python Profiler 无法启动,因为尚未添加功能
    101. 在创建 Conda 环境时选择“Python (最新)”显示“Python 版本 0.0”
    102. 格式化程序出现“black”和“autopep8”错误,并显示“修补程序模式无效”:文件末尾没有换行符”。 一个快速的规避方法是在文件末尾添加一个换行符,这样“black”和“autopep8”就会正确格式化
    103. Django Web 项目命令(迁移、创建、检查等)当前出错
    104. HTML 文件中的 Django 补全不起作用
    105. IPython 交互模式不适用于 Python 3.9
    106. 即使模块安装成功,输出中仍显示警告。 一个快速的规避方法是关闭并重新打开 VS 解决方案
    107. C++ IntelliSense

    108. 导入 C++20 模块或标头单元时,IntelliSense 可能会停止工作或显示“有太多的错误”错误
    109. 此次发布的 Visual Studio 2022 版本 17.0.0 中的新增功能的详细信息

      调试和诊断

    110. “附加到进程”对话框改进
    111. 通过窗口底部的切换开关新建父/子进程列表视图
  •