添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
| Visual Studio 新增功能文档

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

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

Visual Studio 2022 版本 17.7 发行版

  • 2023 年 9 月 12 日 - Visual Studio 2022 版本 17.7.4 NewReleaseIcon
  • 2023 年 8 月 29 日 — Visual Studio 2022 版本 17.7.3
  • 2023 年 8 月 22 日 – Visual Studio 2022 版本 17.7.2
  • 2023 年 8 月 15 日 - Visual Studio 2022 版本 17.7.1
  • 2023 年 8 月 8 日– Visual Studio 2022 版本 17.7
  • Visual Studio 2022 博客

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

  • Visual Studio 2022 版本 17.7
  • 17.7.4 Visual Studio 2022 版本 17.7.4

    发布时间:2023 年 9 月 12 日

    此版本的 Visual Studio 2022 版本 17.7.4 中的新增功能摘要

  • 已将 Visual Studio 使用的 Git 版本更新为 v2.41.0.3。
  • 修复了在反编译模块上使用热重载应用更改时发生崩溃。
  • 通过将引号添加到路径,防止沿路径进行进程劫持,确保 VS Installer 提升服务的安全性。
  • 开发人员社区

  • 代码镜头 TypeScript/JavaScript 引用动画
  • Visual Studio 未断言0xC0000005:访问冲突
  • 已解决的安全公告

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

    发布日期:2023 年 8 月 29 日

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

  • 添加了对使用 Xcode 15 列出模拟器和设备的支持,并删除了 NewsstandKit 硬链接依赖项。
  • 修复了在安装程序路径中存在符号链接时阻止 Visual Studio 安装程序运行的问题。
  • 17.7 中添加的新的 C++ 包含清理功能一直导致用户崩溃,因此我们暂时禁用它,以期在 17.8 中重新启用
  • 开发人员社区

  • 如果打开某个项目中的任何文件,打开解决方案就会挂起
  • 尝试打开 .sql 文件时,VS 2022 崩溃
  • 包含通配符的 Kestrel 网址不适用于 Visual Studio 2022 17.7
  • VS2022 上的 VSIX 安装失败
  • 在新的 VS 2022 更新 17.7.0 中,功能测试不起作用
  • 17.7.2 Visual Studio 2022 版本 17.7.2

    发布日期:2023 年 8 月 22 日

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

  • 某些终结点安全性和应用程序控制计划会导致 Visual Studio 不稳定。 此问题已解决。
  • 修复了某些用户在“为我安装 WSL”体验中遇到的崩溃。
  • 用户在打开包含 CMake 项目的文件夹时可能会在 Visual Studio 中遇到无限期挂起。 导致此挂起的争用条件已确定并修复。
  • 开发人员社区

  • 从解决方案资源管理器中删除 Github 操作
  • VS 2022 17.7 的 QuickInfo 工具提示中未考虑诊断抑制器
  • 17.7.1 Visual Studio 2022 版本 17.7.1

    发布日期:2023 年 8 月 15 日

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

    开发人员社区

  • 注释取消的代码未正确着色
  • 应用程序输出窗口消失
  • 修复了 Csproj 编辑器由于 AndroidPackageFormat 而无法打开的问题
  • 无法重命名解决方案文件夹
  • 17.7.0 Visual Studio 2022 版本 17.7

    发布日期:2023 年 8 月 8 日

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

    提高生产力的功能

    其他开发者社区建议:你们发问了,我们聆听了!

  • 无法再将表导入 edmx。 “正在运行的转换: System.NullReferenceException: 对象引用未设置为对象的实例。” 46 票
  • 重启后无法记住批生成中的选择 41 票
  • .vs 文件夹出人意料地增大 32 票
  • 调用堆栈和其他窗口未正确呈现 21 票
  • SignTool 错误:/p 选项需要 /f 选项 12 票
  • 在 MAUI 中,无法对 Xaml 使用 F7,对 CS 使用 Shift+ F7 10 票
  • 单击固定选项卡会将窗口拖出并取消固定 9 票
  • MSVC 编译器在用户定义的运算符重载上挂起 8 票
  • 在 Unreal Engine 中查看着色器文件时 HLSL Tools 将使 Visual Studio 崩溃,且虚拟文件映射已提供 7 票
  • VS 2022 版本 17.6.0 预览版 3 和预编译标头出现错误 C1010
  • VS 2022 中的 SSDT 完全损坏
  • 编译器在分析代码时崩溃,包括具有引用包含类的嵌套非模板类的类模板的专用化
  • 使用随机 JSON 对话框启动 VS 失败
  • 除非完成手动重新生成或修改代码,否则将忽略 Azure Function 的 host.json
  • 提高生产力的功能:

    不再需要离开 Visual Studio 并依赖其他工具来比较文件。 现在,可以通过以下任一方法轻松将解决方案资源管理器中的任何文件与其他文件进行比较:

  • 右键单击一个文件,从上下文菜单中 选择“与...比较”,这将打开文件资源管理器。 导航到磁盘上的任何文件并将其选中以进行比较。
  • 使用多选功能选中两个文件,方法是按住 Ctrl 按钮,然后右键单击并从上下文菜单中选择“比较选定项”。
  • 请在 此处 分享你的反馈。 我们很乐意听到你对此新体验的看法。

    复制和剪裁缩进

    将代码从 Visual Studio 复制到另一个程序(Outlook、Teams、Slack 等)时,Visual Studio 现在会自动修复缩进。

    多分支 Git 图

    在预览版工作的基础上,我们实现了多分支图,以便在同一图形中可视化多个分支,另外还有其他 UI 改进。

    可以选择其他分支以与当前签出分支进行比较,或使用悬停眼图标在图中打开和关闭分支,从而使用新的摘要图标跟踪当前签出分支上的传入和传出分支。 此外,还可以在 Azure DevOps 存储库中为创建者提供头像、获取更流畅的图呈现更新,并通过折叠分支面板或打开提交详细信息来最大化空间。

    请在 此处 分享有关此功能的反馈

    创建新的 GitHub Actions

    现在可以从解决方案资源管理器创建新的 GitHub Actions 工作流。 它支持将 Azure 容器应用和 Azure Kubernetes 服务作为目标,并支持使用单个工作流部署多个项目。 当项目在 GitHub.com 上受源代码管理时,解决方案资源管理器中会显示一个表示 GitHub Actions 的新节点,(如果未看到新节点,请确保在“工具”>“选项”>“预览功能”下选中“在解决方案资源管理器中显示 GitHub Actions”)。 右键单击并选择“新建”以尝试新体验。

    并行堆栈筛选器

    并行堆栈窗口现在支持筛选选项。 通过筛选,可以轻松地仅关注对你很重要的帧和线程,这样就可以提高清晰度并在更短的时间内完成更多工作。 除了筛选之外,我们现在还添加了从并行堆栈窗口中拖动选择帧的功能。 因此,现在可以一次对所有选定帧轻松执行复制/粘贴、标记/取消标记或冻结/解冻等操作。

    折叠解决方案资源管理器的所有后代

  • 在解决方案资源管理器中右键单击节点时,我们已将“折叠所有后代”命令添加到上下文菜单中。 可以使用此命令折叠所选节点及其后代节点。 我们还通过 Ctrl + 向左键将其映射为快捷方式。
  • 性能改进:

    F5 速度

    我们认识到 Visual Studio 的性能对你至关重要。 考虑到这一点,我们优化了程序数据库 (PDB) 文件,从而改进了调试会话,并将 Unreal 项目的项目选择屏幕加载时间减少了 21%(约 4 秒的增益)。 此外,F5 路径已优化,使得调试器的启动时间和进程启动提高了 5-10%。

    一站式搜索响应能力

    一站式搜索将获得多项准确性和性能增强。 例如,精确匹配项现在会在结果列表中显示得更高,当你键入查询时,结果会更准确地实时更新。

    试用一站式搜索体验,方法是确保它在“工具 > 管理预览功能 >“新 Visual Studio 搜索体验(需要重启)”中启用,并使用 Ctrl + T 或 Ctrl + Q 键盘快捷方式启动它。 如果你有关于此功能的反馈,请在 此处 告诉我们。

    “在文件中查找”搜索时间

    通过各种优化显著改进了“在文件中查找”搜索时间,使搜索时间显著减少约 50%!

    C# 拼写检查器内存消耗

    C# 拼写检查器的 LSP(语言服务器协议)经过了重大改进。 通过实现更高效的数据结构并启用流式处理支持,我们在 LSP 服务器和 LSP 客户端之间传输的 JSON 内存占用量减少了 90%。 此增强可提高性能、提高拼写检查功能的效率和可缩放性。

    C++ Unreal Engine 的 IntelliSense 时间

    在 Unreal Engine 项目中,IntelliSense 和着色在新打开的 C++ 文件中准备就绪的时间会显著减少。 在 Unreal Engine 5.1 和 5.2 项目中,IntelliSense 缓存 (IPCH) 的生成速度提升了 30%,在 Unreal Engine 4.27 项目中提升了 15%。

    灯泡响应能力

    Roslyn 中灯泡功能的性能增强使得缓慢的诊断可以更快地修复,例如修复格式和简化类型名称。 享受即时的建议和修复,即使在大型文档或进行编辑后也是如此。

    解决方案加载 CPU 消耗

    得益于优化的哈希创建方法,加载大型解决方案的效率更高了,CPU 消耗量也降低了。 这一增强对于具有多个核心的计算机尤其有利。

    .NET 开发

    外部 .NET 代码的自动反向编译

    Visual Studio 调试程序支持对外部 .NET 代码进行自动反向编译。 每当单步执行已在外部实现的代码时,调试程序将自动反向编译该代码并显示执行点。

    此功能在分析调用堆栈时特别有用,你可以双击任何堆栈帧,调试程序将直接导航到代码。 此外,还可以调试反向编译的代码并轻松设置断点。 所有反向编译的代码也显示在解决方案资源管理器中的外部源节点下,以便在需要时轻松浏览外部文件。

    如果要禁用外部代码的自动反向编译,只需在“工具”>“选项”>“调试”下清除“在需要时自动反向编译到源(仅限托管)”选项。

    CPU 使用情况工具的新自动见解

    CPU 使用情况工具现在为涉及某些方法和属性的方案提供其他见解和详细信息,例如 Enum.HasFlag、Enum.ToString、String.StartsWith、String(char[])、ConcurrentDictionary.Count、ConcurrentDictionary.Keys/Values 和 DateTime.Now。

    此外,现在还有一个使用 Copilot 聊天扩展的“询问 Copilot”选项。 触发后,Copilot 聊天将解释问题发生的原因并提出修复建议。

    C++ 和游戏开发

    适用于 C++ 的 Unreal Engine 宏格式设置

    Visual Studio 将检测并遵循 Unreal Engine 反射宏的缩进和格式规则。 若要启用特定于 Unreal Engine 的格式设置,请在“选项”中搜索“Unreal Engine”,或转到“工具”>“选项”>“文本编辑器”>“C/C++”>“代码样式”>“格式设置”>“Unreal Engine”,然后勾选“为 Slate 声明性语法和 Unreal Engine 反射宏应用特殊格式”。

    在 Visual Studio 中生成见解 (C++)

    感谢你的 反馈 ,我们非常高兴地宣布 生成见解 现已与 Visual Studio 2022 集成! 生成见解提供优化 C++ 生成时间时所需的重要信息。 单击解决方案或项目的按钮即可启动生成见解 .etl 跟踪捕获。 编译后,生成见解将创建一个诊断报告,使你能够查看昂贵的包含内容,并直接导航到头文件。 对于 Power User,可以从报表中打开 Windows 性能分析器。

    Unreal Engine C++ 命名约定检查器

    借助 Unreal Engine 命名约定检查器,Visual Studio 现在会在符号不符合 Unreal Engine 编码样式时提供提示。 将 .editorconfig 文件 添加到 Unreal Engine 项目后,Visual Studio 将在错误列表中显示命名约定警告,并在右键单击时提供快速修复选项。

    改进了 Doxygen 重载分辨率

    以前,当特定函数具有 Doxygen 注释时,除了紧跟在注释后面的重载之外,它不会显示在每个重载的“快速信息”中。 现在,我们允许在所有关联重载的“快速信息”中显示另一个重载中的文档。

    Unreal Engine 蓝图查找所有引用

    现在,可以使用新的“蓝图查找所有引用 ”在 Unreal Engine 蓝图中搜索 UFUNCTION 的引用。 若要开始,请右键单击带有 Blueprint 引用的符号。 然后,单击“查找所有 Blueprint 引用”以开始搜索。 需要 Unreal Engine 插件“ Visual Studio 集成工具 ”的最新版本。

    地址擦除器 continue_on_error 支持

    我们已使用新 continue_on_error 模式扩展了地址擦除器支持。 此新运行时模式在应用运行时将诊断并报告隐藏的内存安全错误,且无误报。 使用设置 ASAN_OPTIONS=continue_on_error=1 输出 stdout ,或者使用设置 set ASAN_OPTIONS=continue_on_error=2 输出 stderr 。 有关更多详细信息,请参阅 AddressSanitizer continue_on_error

    新增了“包含项清理”功能。 此功能提供了在检测到间接包含时添加直接包含的建议,并标识任何未使用的包含项。 在默认情况下,禁用此功能。 要启用此功能,请导航到“工具”>“选项”>“文本编辑器”>“C/C++”>“IntelliSense”,然后选择“启用 #包含项清理”。 有关此功能的详细信息,请参阅 包含项清理博客文章

    使用 C++ 进行 Linux 和嵌入式开发

    WSL 自动获取

    WSL 的一键式下载现在可用于 Linux 和嵌入式工作负载。 打开可面向 Linux 的 CMake 项目时,将打开一个金色栏,用于单击并打开 WSL 安装过程。 默认情况下,将安装 Ubuntu 计算机。 此外,还可以随时导航到“项目 > 为我安装 WSL”打开该对话框。

    远程文件资源管理器更新

    我们已将搜索功能添加到远程文件资源管理器。 现在,你可以在顶部栏根据你在远程计算机中的位置搜索文件,然后右键单击以转到找到的任何文件的位置。 此外,我们还向工具栏添加了两个新按钮以改进远程文件资源管理器体验,一个用于转到主目录,另一个用于打开工具选项。

    其他 C++ 更新

  • 添加了对 CMakePresets.json 版本 6 的支持。 如需详细了解此版本中提供的功能,请参阅 CMake 文档
  • 已将 Visual Studio 随附的 LLVM 版本升级到版本 16。 如需了解此版本提供的功能,请参阅 LLVM Clang 发行说明。
  • 添加了用于溢出检测的新内部函数,例如 _add_overflow_i32
  • 连接管理器 API 现已公开,用于以编程方式管理连接。
  • 我们更改了 ASan 使用的链接模型。 所有这些设置现在都依赖于单个 DLL: clang_rt.asan_dynamic-<arch>.dll ,而不是每个运行时库设置( /MD /MT /MDd /MTd )都有自己提供 ASan 运行时的方式。 这意味着加载链接到 C 运行时的二进制文件的程序将能够在 ASan 下运行,没有任何兼容性问题,且 /MT(d) DLL 不再需要使用 ASan 生成主机 EXE 就能运行。 请注意,这意味着 /MT(d) 二进制文件现在还依赖于 clang_rt.asan_dyanmic-<arch>.dll 存在于该程序的路径中,因此需要更新测试环境。
  • 现在可以在宏上使用“可视化扩展”选项,分步查看嵌套宏的扩展。
  • Web 开发:

    ASP.NET 项目中的 npm 依赖项管理

    在利用 npm 包的 ASP.NET 项目中,Visual Studio 现在会在解决方案资源管理器的“依赖项”节点中显示 package.json 中的这些包。 现在,你可以在一个位置清晰地看到 .NET 的所有解决方案依赖项,包括引用、NuGet 包以及新增的 npm 包。 右键单击 npm 节点,可以添加新包或还原 (npm install) 所有包。

    可以使用该 UI 搜索并选择要添加的包。

    可以通过右键单击特定包来更新或卸载它。

    支持 Vite for React 和 Vue 新项目创建

    宣布 Visual Studio 中 JavaScript/TypeScript 和 .NET 组合项目模板时,我们收到了社区反馈,即 create-react-app 和 vue cli 已不再是创建新应用程序的首选方式。 我们现在会利用 Vite 为 Visual Studio 中的 JavaScript 和 TypeScript 项目模板创建 React 和 Vue 新项目。 项目生成和运行也将受益于 Vite,例如可实现更快的服务器启动和更新。

    此更改还提高了流程的性能,从而可以更快地创建这些类型的项目。 它还解决了计算机上未安装必要的依赖项时出现的创建失败问题。

    HTTP 编辑器

  • 我们更新了 HTTP 编辑器 ,增加了新的响应视图。 新的响应视图支持突出显示 JSON 以及查看以下内容的功能:原始响应、请求的标头以及发送到 Web 服务器时的请求。
  • 用于发送请求的绿色播放按钮已替换为代码透镜操作。
  • Power Platform 连接服务

  • 我们增加了 对 Microsoft Power Platform 连接服务的支持
  • 可以在 Power Platform 环境 中创建自定义连接器,并创建 开发隧道 以在本地测试和调试 Web API 项目。
  • 添加了内联返回类型提示:
  • 因为它们处于预览状态,并且默认处于禁用状态。 通过“工具”->“选项”->“文本编辑器”->“F#”->“高级”->“显示返回类型提示”启用它们

  • 添加了新的批量代码修复:
  • 请参阅 #15082 中这些代码修复的完整列表

  • 解决了使用多行参数时参数名称提示崩溃的问题
  • 添加了用于自定义快速信息描述宽度的选项:“工具”->“选项”->“文本编辑器”->“F#”->“快速信息”->“首选描述宽度(以字符为单位)”。 在 #14964 中查看更多详细信息
  • 将活动日志合并到输出窗格(有关详细信息,请参阅 #15028
  • 修复了删除未使用的打开的批量代码修复
  • 提高了快速信息链接导航的速度
  • 添加了对具有多个美元符号的新内插字符串语法的支持( 详细信息和 RFC ):
  • 引入了内联提示的工具提示:
  • A–类型提示:

    B–参数名称提示:

  • 修复了嵌套函数调用的参数名称提示 ( #15156 ) 和自定义操作 ( #15119 )
  • 修复了注释与泛型或类型参数一起出现的情况的返回类型提示 ( #15124 )
  • SSDT (SQL)

    支持 SSDT 中的无服务器 SQL 池

    我们将提供将数据库从无服务器 SQL 池导入 SSDT 的功能。 可以通过导入常规数据库的相同进程来完成此操作。

    用户还可以在无服务器 SQL 池中发布全新的项目。 需要将目标平台设置为 SQL 无服务器

    可以对这些表执行架构比较、数据比较、添加外部表等常规 SSDT 操作。

  • 修复了使用 Azure Interactive Dir 向 Azure 调试器发布的问题。
  • 目标平台中 SQL Serverless 的命名法已更改为 Azure Synapse Analytics Serverless SQL Pool
  • 安装和更新

    Visual Studio 支持返回到以前安装的版本。 回退会使 Visual Studio 返回到上次应用更新之前安装的版本,但将保留自上次更新以来对所选组件进行的任何修改。 将还原常见的同步设置,例如主题、字体、键绑定和窗口布局。 同样,你的漫游设置将始终还原。 此功能的最新新增内容是,现在仅当回退到版本 17.7 预览版 3 或更高版本时,才会还原本地自定义项,例如用户设置。 有关详细信息,请访问 回退博客文章

    企业版管理和获取

    标准用户能够更新和修改 Visual Studio

    该版本包含一项新功能,可帮助企业遵守安全最佳实践,同时使开发人员能够更新和修改其开发环境。 管理员现在可以将安装程序功能委托给标准用户。 因此,如果管理员遵循安全最佳实践并限制用户权限,那么现在可以授予标准用户对安装程序功能的访问权限,从而允许开发人员更新和修改产品。

    若要启用此配置,管理员需要在客户端计算机上执行两个简单的步骤:安装最新的 17.7 安装程序,并设置新的全局策略。

  • 可以通过更新产品来获取客户端计算机上的最新安装程序。
  • 设置全局策略 “AllowStandardUserControl” REG_DWORD。
  • 值为 1 仅允许更新和回滚。
  • 值为 2 可启用所有安装程序功能,包括从“可用”选项卡进行修改和安装。
  • 此功能适用于 Visual Studio 2017 及更高版本的所有版本。

    许多企业用户请求了此功能 ,我们希望我们的解决方案能够满足你的需求。 请试用一下,然后告诉我们你的想法!

    Microsoft 365 开发

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

    我们已在 17.6 预览频道中全面测试了预览功能,现在 17.7 正式版将正式推出这些预览功能。 包括:

  • Teams 工具包更新了 Teams 应用模板项目结构,使其对开发人员更加透明和灵活。
  • 在新项目中,我们推出了一个新的配置文件 teamsapp.yml ,用户可以在其中看到,当触发生命周期命令(如调试、预配和部署等)时,Teams 工具包在后台执行了哪些操作。 用户可以清楚地看到 Teams 工具包正在执行的操作,并且可以通过编辑 yml 文件来自定义操作以更改 Teams 工具包行为。
  • 现在可以使用 VS 本机开发隧道功能为 Teams 应用创建隧道服务。 NgRok 不再是为 Teams 项目创建隧道的唯一方法。
  • TeamsFx .NET SDK 更新
    • 支持获取在通知机器人中安装了机器人的目标的分页列表。
    • 支持获取通知机器人中一对一、组或团队对话成员的分页列表。
    • 此版本中提供了简化的 Teams Tab 应用模板。
    • 一些 bug 修复和 UI 改进,以确保在 Teams 工具包上提供更好的用户体验
  •