2022LogoVisual Studio 2022 版本 17.5 发行说明


提示

观看 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 2022 版本 17.5 发行版

Visual Studio 2022 博客

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

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

查看作为 17.5 的一部分提供的所有开发者社区建议列表


17.5.4 Visual Studio 2022 版本 17.5.4

发布日期:2023 年 4 月 11 日

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

  • 此更改修复了当无效输入发送到在内核模式驱动程序的 PGO 训练期间使用的驱动程序时发生故障的问题。
  • 修复了 ISO C++17 和 ISO C++20 的 MSVC 模板运算符解析问题
  • 使用 Rtl* 内存函数操作该内存时,MSVC ASAN 将忽略映射内存文件。
  • 请将 .NET MAUI 更新为 7.0.81 (SR4),有关发行说明,请参阅 https://aka.ms/dotnet-maui-releases
  • 将 .NET iOS 更新为 16.2.127.0,请参阅发行说明。
  • 将 .NET Android 更新为 33.0.46.0
  • 解决配置 API 中可能导致双重释放漏洞的修补程序的问题。
  • VSIXInstaller 已更新,可防止信任警告在 UI 中隐藏。

已解决的安全公告

开发者社区亮点


17.5.3 Visual Studio 2022 版本 17.5.3

发布日期:2023 年 3 月 21 日

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

  • 移除用于 ASP.NET Web 工作负载的集成 Edge 开发人员工具
  • 解决了有关大量线程并发访问同一堆的 ASAN 性能下降问题。 此外,将 windows_hook_legacy_allocators 选项的默认值更改为了 true。
  • MSVC C++ 工具集已更新到 14.35.32216.01
  • 编辑 Razor 文件时,添加一些计算编辑构造的缓存可以提高性能。
  • 修复了以下 bug:当 Text 属性包含多行(在 InitializeComponent 中生成代码时由 vbCrLf 分隔)时,VB-WinForms 项目中的多行文本框将被删除。
  • 修复了以下 bug:WinForms 进程外设计器中非常大的窗体或 UserControl 需要很长时间才能保存。 请注意,Forms/UserControl > 3,000 行代码将在某些情况下采用不同的格式或不受命名空间/此(Visual Basic 中的 Me)缩减的约束。 请考虑将非常大的窗体的一部分重构为专用的 UserControl,并在更大的窗体中使用这些 UserControl 来改进性能并简化维护。
  • 修复了以下 bug:当上一行以引号或双引号字符结尾时,InitializeComponent 中的 VB-Tick-Comments 现将正确换行到各个行中。
  • 修复了以下 bug:在 Visual Basic 中重命名 Code-behind Designer 文件的 WithEvents 定义的 Control 字段不再导致多次定义/处理的事件。

开发者社区亮点


17.5.2 Visual Studio 2022 版本 17.5.2

发布日期:2023 年 3 月 14 日

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

  • 修复了标记帮助程序查找中的一个 Razor 编译器优化 bug,该 bug 在很多情况下造成 ViewComponent 标记帮助程序损坏。
  • 这向 17.5 版本新增了 @bind:after 支持。 此功能最初是在 17.4 版本中增添的,但未正确移植到 17.5 代码库中。
  • 在“一站式搜索”体验中,预览面板对所有结果都是只读的。 我们在致力于处理细节并解决预览编辑体验方面的问题,感谢你在此期间的耐心等待。
  • 将适用于 Windows 的 mingit 和 Git 包更新至 v2.39.2,这解决了 CVE-2023-22490
  • 移除用于 ASP.NET Web 工作负载的集成 Edge 开发人员工具

已解决的安全公告

开发者社区亮点



17.5.1 Visual Studio 2022 版本 17.5.1

发布日期:2023 年 2 月 28 日

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

开发者社区亮点


17.5.0 Visual Studio 2022 版本 17.5

发布日期:2023 年 2 月 21 日

开发者社区亮点

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

集成终端中的 ASP.NET 输出

  • 在 Visual Studio 中启动的 ASP.NET Core 应用程序现在将输出重定向到集成终端工具窗口,而不是外部控制台窗口。

在没有 Dockerfile 的情况下生成容器映像

  • 使用 .NET 7,现在只需使用 .NET SDK 即可生成和发布容器映像。 不需要 Dockerfile 就可以面向所需的任何 .NET 运行时,包括以前的版本。

按正则表达式为制表符着色

  • 根据定义的路径匹配规则直观地区分不同的文件。

C++

  • std::movestd::forwardstd::move_if_noexceptstd::forward_like 现在不会在生成的代码中生成函数调用,即使在调试模式下也是如此。 这是为了避免命名强制转换在调试版本中导致不必要的开销。 /permissive- 或表示它的标志(例如 /std:c++20std:c++latest)是必需的。
  • 添加了 [[msvc::intrinsic]] 以支持上述项。 这可应用于由单个强制转换组成的非递归函数,该函数仅采用一个参数。
  • 在允许终端 I/O 的集成终端中添加了对 Linux 控制台的支持。
  • 添加了对 C11 原子基元 (<stdatomic.h>) 的初始实验性支持。 可在 /std:c11 模式或更高版本中使用 /experimental:c11atomics 标志来启用此实验性功能。
  • 向生存期检查器添加了一组新的实验性高置信度检查,以减少干扰。
  • 启用了一个新的预览功能“远程文件资源管理器”,可在 VS 中查看远程计算机上的文件目录,并可在其中上传和下载文件。
  • 更改了 Visual Studio 随附的 CMake 可执行文件的版本控制,以与 Kitware 版本匹配。
  • 向 CMake 项目模板添加了对热重载的支持。
  • C++ 的“转到定义”现在将使用更精细的操作指示器,这需要花费更多时间,取代了以前版本中的模式对话框。
  • 已开始推出一项试验,在 C++ 自动完成和成员列表中提供额外的智能结果。 此功能以前称为“预测 IntelliSense”,但现在使用一种新的表示方法。
  • 我们现在提供带 LLVM 工作负载的本机 Arm64 Clang 工具集,允许在 Arm64 计算机上进行本机编译。
  • 添加了图像查看扩展的本地化(注意:此扩展在市场中提供,并且未通过 Visual Studio 安装程序捆绑)。
  • 添加了在当前运行的开发人员容器中打开终端窗口的支持。
  • 对 IntelliSense 宏扩展进行了多项改进。 值得注意的是,我们在更多上下文中启用了递归扩展,并在弹出窗口中添加了将扩展复制到剪贴板或内联扩展宏的选项。
  • 串行监视器现在支持并发监视。 并发监视允许同时并排监视多个端口! 只需按加号按钮即可打开另一个串行监视器并开始使用。
  • 现在可以查看在 Unreal Blueprint 资产中修改的基类的属性,而无需退出 Visual Studio。 双击 C++ 类或属性的蓝图引用,在 Visual Studio 中打开 UE 资产检查器。
  • 在远程 Linux 计算机上启用了运行中的 DevContainers。
  • 在 CMake 目标视图中选择了要构建的多个目标。
  • 添加了对 CMakePresets.json 版本 5 的支持。 有关新功能的信息,请参阅 CMake 文档
  • 启用了测试资源管理器以并行生成和测试多个 CMake 目标。
  • 在开发容器中添加了“在终端中打开容器”选项。
  • 实现了标准库功能:
    • P2508R1basic_format_stringformat_stringwformat_string
    • P2322R6ranges::fold_leftranges::fold_right
    • P2321R2views::zip(不包括 zip_transformadjacentadjacent_transform

这些备注用于说明此版本中提供“大括号对着色”功能。 不幸的是,此功能已推迟直到版本 17.6 发布。 可立即下载 17.6预览版 1 进行试用。

代码搜索和导航

All-In-One Search

  • 一站式搜索将代码 (Ctrl+T) 和 IDE 功能 (Ctrl+Q) 搜索功能合并到一个 UI 中。
  • 通过代码搜索 (Ctrl+T),可快速导航到解决方案中的文件、类型和成员。
  • 通过功能搜索 (Ctrl+Q),可轻松访问 Visual Studio 中提供的各种工具、选项、模板和组件。
  • 在“代码搜索”选项卡中,通过“预览面板”,无需打开所选结果即可查看该结果周围的上下文。 你甚至可以直接在搜索窗口中调整代码。
  • 在此处详细了解一站式搜索。
  • 我们计划逐步开启这一全新的搜索体验。 可手动启用/禁用此体验:“工具”>“管理预览功能”>“新的 Visual Studio 搜索体验(需要重启)”。

调试和诊断

  • 文本可视化工具启用了其他工具和字符串操作选项,例如 URL 编码和解码、Base64 编码和解码、JWT 解码等。

text-visualizers

  • 文本可视化工具和快速监视窗口现在提供对深色、蓝色和浅色 VS 主题的完全主题设置支持。

quick-watch

  • 并行和调用堆栈窗口将具有指示器图标,可引起对死锁线程或阻塞线程等关键场景的注意。

priority-indicators

  • “托管内存”窗口现在将显示名为“重复字符串”的快照/转储的新自动见解。
  • “托管内存”窗口中的新选项卡“见解”会显示在堆上多次分配的字符串列表。 还会显示内存浪费总量,即实例数减去字符串大小的一倍。

string-Duplicates

  • 还可以通过单击“查看实例”按钮转到实例,该按钮显示与“内存”窗口类似的实例视图。 它还会显示字符串对象的保留关系图。

View-String-Instance

性能增强功能

  • 针对大型解决方案的更快速的解决方案加载:Visual Studio 增加了一项名为“生成加速”的新功能,该功能可提高增量生成性能。 “生成加速”指示 Visual Studio 仅生成有修改的项目,而跳过未更改的项目。
    启用生成加速可以使 SDK 风格的 .NET 项目的增量生成时间缩短 80%。 Faster-solution-load 有关启用/禁用生成加速的更多详细信息和说明,请访问以下链接:https://aka.ms/vs-build-acceleration

  • 外部源反向编译:在 17.5 中,反向编译大型 .NET 模块的速度提升了 10 倍,从而提高了调试和排查问题的效率。

Decompilation

  • 线程窗口:线程窗口的响应时间比 17.4 快 2 倍,并且可在具有大量线程的情况下高效地扩展。

Threads

  • 代码覆盖率:添加了新的静态检测选项,可提供比动态检测更高的性能。

CodeCoverage

快速添加新文件

  • 在不搜索模板的情况下将新文件添加到项目中。

Markdown

  • Visual Studio 现在支持编辑 Markdown (.md) 文件。
  • 若要开始,请打开任何文件扩展名为 .md 的文件。
  • 使用编辑器窗口左上角的“预览”按钮预览已处理的 HTML。 Shift+F7 还可用于打开预览。 使用 Ctrl+Alt+向上键将键盘焦点移动到“预览”按钮,然后按空格键切换预览。
  • 在某些情况下,新的 Markdown 编辑器可能不会自动启用。 如果无法打开 .md 文件,找不到“预览”按钮,或者在编辑器中看不到修饰,请检查“工具\选项”的“预览功能”页面中的“Markdown 语言服务”预览功能是否已启用。
  • 请注意,如果当前使用扩展来编辑 Markdown 文件,则可能需要在 .md 文件中显示上下文菜单并显式选择“打开方式…”,然后选择你的首选选项。

SQL Server 2022

  • 使用为 SQL Server 2022 引入的新 T-SQL 语法

拼写检查器

Visual Studio editor shows that an identifier DetailChekkForIssues has a misspelled word and provides alternate spellings for

  • Visual Studio 现在可以对 C++、C# 和 Markdown 文件进行拼写检查。 此功能处于预览阶段,可通过选中“预览功能”中的“文本拼写检查器”选项来启用。 也可通过“编辑\高级”下的“切换文本拼写检查器”命令或主工具栏中的按钮来切换此功能。 对于 C++ 拼写检查,还必须选中“C++ 拼写标记器”。
  • 默认情况下,拼写检查器将使用 en-us 词典,将拼写错误的单词标记为警告,并将扫描注释、字符串和标识符中拼写错误的单词。 可使用 .editorconfig 文件修改此行为。
  • 以下属性可用于控制 .editorconfig 中的拼写检查器:
spelling_languages = _language_,_language_,etc...
spelling_checkable_types = strings,identifiers,comments
spelling_error_severity = error OR warning OR information OR hint
spelling_exclusion_path = absolute OR relative path to exclusion dictionary (File must be UTF16 with BOM encoding)

.editorconfig 示例:

spelling_languages = en-us,fr-fr
spelling_checkable_types = identifiers,comments
spelling_error_severity = error
spelling_exclusion_path = .\exclusion.dic

设置和更新

  • 现在可使用导出的 *.vsconfig 文件轻松配置组件并将其添加到脱机布局。
  • 现在可通过“工具选项”>“产品更新”对话框获取在关闭时始终更新的选项。 这样就可以更轻松地自动保持更新和安全状态。 有关详细信息,请访问博客文章
  • Visual Studio 在安装程序添加了音频提示! 音频提示会提醒用户已在安装程序上完成操作或者播放声音时出错。 这包括安装、更新、修改和安装程序执行的其他许多操作,或者尝试请求的操作时出现的任何错误对话框。 此功能默认处于启用状态,用户可以按照此处概述的说明将其关闭:在安装程序中禁用声音
  • Visual Studio 现已通过 Windows 数据包管理器工具提供

Teams 工具包更新

  • 借助新的 Microsoft Teams 应用和工作流机器人项目模板,可以更轻松地开始创建任务(如审批流程或票证系统)的顺序工作流。
  • 17.5 预览版 2 和预览版 3 中的预览功能和项目模板更改包括针对以前创建的任何 Microsoft Teams 应用项目的重大更改,并且这些更改不会包含在 17.5 正式版中。 我们将在 17.6 预览版中继续预览这些功能更改并收集反馈。

Windows 身份验证代理

  • 通过启用 Windows 身份验证代理,获得增强的安全性和更少的提示。

反馈和建议

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


Blogs

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


返回页首

已知问题

.NET 运行时

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