2022LogoVisual Studio 2022 版本 17.3 发行说明


提示

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

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


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

Download Community ButtonDownload Professional ButtonDownload Enterprise Button

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

重要

预览频道未“上线”,也不打算在生产计算机上使用或用于创建生产代码。 有关详细信息,请参阅 Visual Studio 产品生命周期和维护

Download Community Preview ButtonDownload Professional Preview ButtonDownload Enterprise Preview Button


Visual Studio 2022 版本 17.3 的新增内容

Visual Studio 2022 博客

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

开发者社区建议:你问的,我们会专心聆听!

在下面查看 Visual Studio 2022 版本 17.3 中已处理的开发者社区问题列表


Visual Studio 2022 版本 17.3 发行版


17.3.6 Visual Studio 2022 版本 17.3.6

发布日期:2022 年 10 月 11 日

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

  • 为 .NET 6 for iOS/tvOS 增加了对 Xcode 14.0 的支持
  • .NET MAUI 6.0 维护版本
  • 解决了打开调试器 DataSet 可视化工具时出现的间歇性故障。
  • 管理员将能够从布局更新脱机客户端计算机上的 VS 安装程序,而无需更新 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.3.5 Visual Studio 2022 版本 17.3.5

发布日期:2022 年 9 月 27 日

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

  • 修复了在关闭 WinForms .NET 设计器时,Visual Studio 间歇性进入无响应状态的问题。
  • 当用户在其浏览器设置中启用了 HSTS 并将 GitHub 帐户添加到 Visual Studio 密钥链时,将显示一条错误消息,其中包含用于排查该问题的链接。
  • 修复了面向版本 4.3.0 的 Roslyn 分析器和源生成器无法在 Visual Studio 中加载的问题。
  • 添加了对 Xcode 14.0 的支持

来自开发者社区


17.3.4 Visual Studio 2022 版本 17.3.4

发布日期:2022 年 9 月 13 日

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

  • 不再对警告 C4191 发出误报。
  • 在 Visual Studio 17.3 中发布 ClickOnce 项目后,此版本修复了以下警告:“Microsoft .NET Framework 4.7.2(x86 和 x64)中的 PublicKey 属性值与文件‘C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\DotNetFX472\NDP472-KB4054530-x86-x64-AllOS-ENU.exe’中的值不匹配。 ”

安全公告

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


17.3.3 Visual Studio 2022 版本 17.3.3

发布日期:2022 年 8 月 30 日

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

  • 修复了在 C# 或 VB.NET 项目中使用重命名时导致 VS 挂起的问题。

来自开发者社区


17.3.2 Visual Studio 2022 版本 17.3.2

发布日期:2022 年 8 月 23 日

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

  • 修复了在 Visual Studio 中选择非英语语言时的“工具箱”->“选择项”命令。
  • 安装程序已更新,用于处理可能缺失的内部依赖项。

来自开发者社区


17.3.1 Visual Studio 2022 版本 17.3.1

发布日期:2022 年 8 月 16 日

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

  • 包括 Windows SDK for Windows 11 的服务更新 10.0.22000.832。

来自开发者社区


17.3.0 Visual Studio 2022 版本 17.3

发布日期:2022 年 8 月 9 日

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

  • MAUI 工作负载 GA 版
  • MAUI/Blazor CSS 热重载支持
  • 现在,你可以通过新增功能,在每次更新时尝试 Visual Studio 中的一系列新功能。
  • 若要了解有关特定功能的详细信息,请选择每个功能。

What's New in Visual Studio

Apple 开发人员帐户

此预览版包括对个人 AppStoreConnect 帐户的初步支持,这些帐户是非企业 Apple 开发人员所需的。

  • 若要添加个人帐户,请打开“工具\选项”,然后选择位于 Xamarin 部分的“Apple 帐户”项。 在“Apple 帐户”中,单击“添加帐户…”按钮,然后选择“添加个人帐户”,并输入 AppStoreConnect API 密钥信息。
  • 创建帐户后,可以通过“查看详细信息”按钮访问证书和预配配置文件。
  • 已知问题:
    • 在某些情况下,自动预配可能不适用于个人帐户。 若要解决此问题,请按照手动预配的说明进行操作。

编辑器中的音频提示

  • 我们在 Visual Studio 编辑器中引入了新的音频提示。 启用后,如果编辑光标遇到有断点、错误或警告的行时,Visual Studio 将播放声音。 默认情况下,Visual Studio 使用与 Visual Studio Code 相同的声音,用户也可根据偏好对这些声音进行配置。
  • 若要启用音频提示,请转到“工具\选项”,并在“环境”下查找“预览功能”。 在“预览功能”中,新选项是“为编辑器启用音频提示”。 如果选中,下次启动 Visual Studio 时,将播放声音。
  • 若要配置单个音频提示,请点击 Windows 10 或 Windows 11 中的 Windows 键并搜索“更改系统声音”。 在“程序事件”下的“程序事件”树中查找“Microsoft Visual Studio”节点。 新事件为“有断点的行”、“有错误的行”和“有警告的行”。 可用于自定义或禁用单个声音。

Sound Control Panel in Windows

Git 工具

行暂存支持,即交互式暂存,能够直接从编辑器和差异视图暂存特定行和/或代码块。 首先,通过选择相应的颜色边距并利用速览差异 UI 来暂存所做的更改,从而暂存最近的一项更改。

阅读我们的博客文章,了解详细信息并分享你的反馈

Line-staging support

C++

  • Arm64EC 工具链不再标记为实验性,已可供生产使用。
  • Visual Studio 终端现在可作为 SSH 客户端与存储的 SSH 连接一起使用。 安装适用于 Linux 工具的 C++ 后,打开终端工具窗口,终端下拉列表将填充存储的连接。 如果选定,将在 Visual Studio 中打开一个新的终端窗口,并在远程系统上打开伪终端窗口。 控制字符、颜色和光标位置感知都受支持。
  • Visual Studio 现在可以为 UE 项目添加 Unreal Engine 类模板。 若要试用此功能,请确保 VS 安装程序中的“使用 C++ 进行游戏开发”工作负载中选择了“针对 Unreal Engine 的 IDE 支持”。 处理 UE 项目时,右键单击项目或文件夹/筛选器,然后选择“添加”>“UE 类”。
  • 现在,转到“定义”将记住以前的签名,并在没有更好的匹配项(例如,手动更改其中一对签名)时进行相应导航。
  • 提高了“转到全部”的响应速度。 以前,结果要在停止键入后才会显示。 在新体验中,键入时就会显示结果。
  • 在需要枚举类型完成的上下文中(例如枚举变量、case 标签、返回的枚举类型等的赋值)自动完成列表现在仅筛选匹配的枚举器和相关构造。
  • 为面向 .NET Core 的 C++/CLI MSBuild 项目添加了 NuGet PackageReference 支持。 进行此更改是为了解决混合代码库无法采用 .NET Core 的障碍。 这不适用于其他 C++ 项目类型或任何面向.NET Framework 的 C++ 项目类型。 目前没有计划将 PackageReference 支持扩展到其他 C++ 方案,因为团队正在开发涉及 vcpkg 的单独体验(这些体验适用于非 MSBuild 方案)并添加其他功能。
  • 为嵌入式开发添加了串行监视器窗口,可通过“调试”>“Windows”>“串行监视器”找到。
  • 与 17.2 相比,C++ 索引提高了约 66%。
  • 将 Visual Studio 随附的 CMake 版本升级到了版本 3.23。 有关可用内容的详细信息,请参阅 CMake 3.23 发行说明
  • 将 Visual Studio 随附的 LLVM 工具版本升级到了 v14。 有关可用内容的详细信息,请参阅 LLVMClang 发行说明。
  • 将并行 Dev 16.11 C++ 工具集更新到版本 14.29.30145.00。 最新版本的 Dev 16.11 C++ 工具集包含重要的 bug 修补程序,包括修复所有剩余的 C++20 缺陷报告。 有关 bug 修补程序的信息(包括 Dev 16.11 中的 C++20 缺陷报告),请参阅 Visual Studio 2019 版本 16.11.14 发行说明
  • 我们对 C++ 模块的编辑器内体验进行了各种改进。 “我们正在不断努力提高体验的质量,鼓励你试用 17.3,并通过开发者社区报告存在的问题。

调试和诊断

  • 诊断分析工具现在包括一个分析器,用于列出内存转储中特有的调用堆栈以及执行这些调用堆栈的线程。
  • IEnumerable 可视化工具现在支持 CSV 格式的数据导出。 只需使用右上角的下拉列表并选择 CSV。可视化工具还支持基于所需筛选字符串筛选数据。 可视化工具将返回包含与筛选器字符串匹配的值的所有行。 还可以以 CSV/Excel 格式导出经筛选和排序的结果。

Visualizer_Filter

  • 我们还添加了对 IEnumerable 和 DataTable/DataSet 可视化工具的主题支持,因此这两个可视化工具窗口的主题都可以设置为 Visual Studio 的深色、浅色和蓝色主题。

DataSet Visualizer

  • 从 17.3 预览版 3 开始,调试程序将自动重新加载之前反向编译的工件(例如符号和 PDB 文件)。 如果选择在以前的任一会话中进行反向编译,则所有后续会话都会自动重新加载工件,并将让你更快地在外部源节点中访问反向编译的源。 这仍将遵循 JMC 设置。
  • 调试程序现在提供了一个新选项,可以禁用托管代码的 NGEN 加载或准备加载托管代码的 (RDR) 映像。 可以在模块加载中使用预编译图像更改“工具”>“选项”>“调试”>“常规”>“阻止”下的设置,也可以使用 Visual Studio 搜索栏中的任何关键字轻松搜索设置。
  • 现在,将在“调用堆栈”窗口中看到异常堆栈帧,因此对于所有异步异常,可以快速加载符号或定位源并直接转到异常位置。 “调用堆栈”窗口中的异常堆栈帧将提供实际调用堆栈的功能。使用“自动导航”、“在帧之间快速来回切换”以及“符号加载”/“反向编译”选项等功能可以返回到引发异常的源代码。

Exception Stack

常规

  • 使用同一个性化帐户(帐户设置对话框左上角显示的帐户)登录新计算机时,GitHub 帐户现在可跨计算机漫游。

安装程序

  • 现在,可以使用安装程序上的“全部更新”按钮更新 Visual Studio 的所有并行版本。

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

  • 已对 Microsoft Teams 应用项目模板进行改进,现在可创建多种类型的 Teams 应用,包括通知机器人、命令机器人、选项卡应用和消息扩展。 现在可使用适用于 Visual Studio 的 Teams 工具包创建和调试各种 Microsoft Teams 应用。
  • 对于使用以前版本的 Teams 工具包创建的任何现有 Teams 应用,建议使用更新的模板创建新项目。
  • 现在可选择何时使用 M365 标识登录,并使用“项目”>“Teams 工具包”>“准备 Teams 应用依赖项”菜单选项注册 Teams 应用资源。
  • “准备 Teams 应用依赖项”将为 Teams 项目注册 Teams 应用和机器人。
  • 可以通过随时再次选择“准备 Teams 应用依赖项”菜单选项,将 manifest.template.json 文件的更新与 Teams 开发人员门户同步,以进行本地调试。
  • 可以通过在 Teams 开发人员门户菜单选项中选择“项目”>“Teams 工具包”>“更新清单”,将 manifest.template.json 文件的更新与 Teams 开发人员门户同步,以进行远程预览。
  • 可以通过右键单击 manifest.template.json 文件并使用“预览清单文件”菜单选项,在同步之前预览清单文件。
  • 使用云菜单中的“项目”>“Teams 工具包”>“预配”在 Azure 订阅中创建资源。
  • 使用“项目”>“Teams 工具包”>“部署到云”菜单将代码发布到这些资源。
  • 可以使用“预览 Teams 应用”菜单在浏览器中远程打开从“预配”菜单创建的 Teams 应用。
  • 可以通过选择“项目”>“Teams 工具包”>“Zip 应用包”菜单选项来压缩 Teams 应用并生成应用包,以便共享和上传。
  • 可以通过右键单击 Teams 应用项目来查找所有“Teams 工具包”菜单选项,它们与“项目”>“Teams 工具包”菜单相同。
  • 有关 Teams 工具包的详细信息,请访问 https://aka.ms/teams-toolkit-vs-docs

.NET 效率

  • 在 C# 10 中,我们添加了全局 Using。 全局 Using 会在文件顶部自动添加不可见的 using。 现在,文件顶部会显示一个图标,通过图标可以知道是否已激活文件中的全局 Using,如果单击该图标,将显示全局 Using 的内容。 Global Usings

  • 速览定义现在支持源链接、嵌入源和反向编译源。 Peek Definition

  • 我们添加了以下三个选项,用于在打开文件时折叠和以提纲形式显示视图:

    • 打开文件时折叠 #region
    • 打开文件时折叠 using
    • 打开文件时从元数据折叠实现
  • 现在可以将“全部修复”应用到 Use expression body or block bodyConvert to raw string literal 重构。

  • 我们现在有一个用于修复无效约束的代码修补程序。 将光标置于编辑器中的诊断波形曲线上。 按 (Ctrl+.) 触发“快速操作和重构”菜单。 选择“修复约束”。 Fix Constraint

  • 我们现在有一个重构,可用于在顶级语句和 Program.Main 样式之间切换。 将光标置于顶级语句上。 按 (Ctrl+.) 触发“快速操作和重构”菜单。 选择“转换为‘Program.Main’样式程序”。 Convert to Program.Main refactoring

  • 我们在“全部修复”操作中添加了更多范围。 除了将“全部修复”操作应用到文档、项目和解决方案之外,还可以将“全部修复”应用到包含成员和包含类型。 Fix All Containing Members and Containing Types

  • 现在,当你向单行注释添加额外的正斜杠时,我们会自动将单行注释转换为文档注释。

  • 我们现在有一个代码样式选项,可用于在 foreach 循环中针对可能的异常发出警告。 根据设计,foreach 循环会隐式强制转换为派生类型。 这在泛型存在之前是必需的,但在某些情况下可能会导致运行时异常。

个性化

  • 文档管理功能已更新。 阅读我们的博客文章,了解更多信息。

这些功能包括:

  • 按多行排列选项卡。
  • 还原最近的文档。
  • 修改偏差指示器。
  • 下拉列表以斜体字显示不可见文档的名称。

Razor (ASP.NET Core) 编辑器

  • 新的 Razor 编辑器现在在 <attribute> 内部提供完全完成支持。
  • 在键入 =“ ”时,新的 Razor 编辑器现在可正确处理 HTML 属性的完成。
  • 新的 Razor 编辑器现在支持 HTML、JavaScript 和 CSS OnTypeFormatting。

测试工具

  • 现在,从测试资源管理器运行测试时,将默认启用并行发现。 这样 Visual Studio 就能够通过可用核心并行发现测试,并减少查看测试资源管理器中测试的时间。

  • 现在,Live Unit Testing 窗口有一个状态栏,类似于测试资源管理器。 这有助于更好地了解 Live Unit Testing 中正在进行的操作,以及清楚地显示错误。 Live Unit Testing Status Bar

  • Vstest.console 现在支持在一个请求中运行不同目标平台和目标框架的程序集。

  • 代码覆盖率现在有一个用于静态检测的缓存,可提高性能。

  • Microsoft.CodeCoverage.Console 现已添加到命令行工具。

  • AnyCPU .NET Framework 测试项目的默认体系结构已从 x86 更改为 x64。 此更改统一了所有类型的测试项目中默认体系结构的确定方式,使其始终基于 Visual Studio 的体系结构。 这意味着,在 x64 版本的 VisualStudio 中将使用 x64,在将来的 ARM64 VisualStudio 中将使用 ARM64。 此规则还适用于 dotnet testvstest.console。 若要还原为使用 x86,请导航到“测试”>“AnyCPU 项目的处理器体系结构”>“x86”

  • 远程测试现在支持针对远程 arm64 Windows 环境运行测试。

  • [Live Unit Testing] 的新生成体验现已默认启用。 阅读我们的博客文章,了解更多信息。

  • 现在,通过在“代码覆盖率结果”窗口中选择“边距字形”,可以选择在编辑器边距上显示代码覆盖率信息。 Convert to raw string

  • Live Unit Testing 现在提供用于重置所有状态的按钮。 转到“测试”>“Live Unit Testing”>“重置解决方案的 Live Unit Testing 状态”。

  • Live Unit Testing 现支持 Razor 文件。

TypeScript 和 JavaScript 开发

  • JavaScript 和 TypeScript 文件项目现在已被排除在程序分析外,除非它们被 tsconfig.json 或 jsconfig.json 文件引用。 这样可以在有大量 TypeScript 和 JavaScript 文件的大型项目中提高性能。

  • 从 ASP.NET 项目中引用的 JavaScript (.esproj) 项目现在新增了一个选项,可在 ASP.NET 项目发布中包含生产生成输出。

  • Visual Studio 现包括 TypeScript 4.7 语言服务和编译器。 有关详细信息,请参阅 TypeScript 4.7 公告博客文章

  • 新的多目标 JavaScript 调试程序现在默认用于 Node.js (.njsproj) 项目。

  • 在 JavaScript 和 TypeScript React (.jsx/.tsx) 文件中自动关闭 HTML 标记。

  • 修复了选择默认 TypeScript 语言服务器时自动类型获取 (ATA) 失败的问题。

  • 修复了使用 npm 7 或更高版本还原包时 Node.js (.njsproj) 项目中的依赖项节点显示间接依赖项的问题。


安全公告


![from-developer-community]来自开发者社区


已知问题

通过以下链接查看 Visual Studio 2022 中所有待解决问题和可用暂避方法。

反馈和建议

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


Blogs

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


返回页首