Visual Studio 2022 发行说明
功能
版本 17.11 发布于 2024 年 8 月 13 日
此版本侧重于提供面向所有开发人员和工作负荷的**生活质量**增强功能。 使用 Visual Studio 时,你希望获得强大的功能和高效的生产力。 正因为如此,提高生活质量的功能至关重要:它们让编程成为一种流畅且愉悦的体验,不再被不必要的麻烦和头痛所困扰。 我们希望你喜欢此更新。
生产力 | 来自社区 |
---|---|
查找所需代码 | 反馈票证 |
修复了 CodeLens 时间线 | 反馈票证 |
对拉取请求创建的更新 | |
更有意义的代码评审 | 反馈票证 |
熟悉的键盘快捷方式 | 反馈票证 |
GitHub Copilot | 来自社区 |
---|---|
在 GitHub Copilot 中引用方法 | |
使用 GitHub Copilot 了解符号 | 反馈票证 |
GitHub Copilot 正变得更加智能 | |
GitHub Copilot 更加安全 | |
优化 GitHub Copilot 建议 | |
简化命名操作 | |
AI 智能变量检测 | |
AI 生成的断点表达式 |
调试和诊断 | 来自社区 |
---|---|
更轻松地修复异步异常 | 反馈票证 |
更快、更一致地进行分析 | |
轻松分析外部代码 | 反馈票证 |
改进了 Arm64 上的调试 | |
Blazor WebAssembly 调试 | |
将断点自动添加到默认组 | 反馈票证 |
Expressive IEnumerable 可视化工具 | |
更快的 C++ 断点 |
IDE | 来自社区 |
---|---|
不缺失任何安装组件 | 反馈票证 |
保持更新和安全 | 反馈票证 |
新的 Teams 工具包模板 | |
经过改进的用户身份验证 |
Web | 来自社区 |
---|---|
发现动态 Web API 路由 | 反馈票证 |
NPM 包在解决方案资源管理器中显示 |
游戏 | 来自社区 |
---|---|
Unreal Engine 添加类模板 | 反馈票证 |
Unreal Engine 添加模块 | 反馈票证 |
Unreal Engine 添加插件 | |
Unreal Engine 工具栏 |
.NET | 来自社区 |
---|---|
修改的资源浏览器 | 反馈票证 |
C++ | 来自社区 |
---|---|
Build Insights QoL 更新 | |
在 Linux 上调试 CMake 项目 | 反馈票证 |
自定义 Clang-Tidy 可执行文件 |
热门 bug 修复 | 来自社区 |
---|---|
Razor 文件中的 TS1109 (TS) 表达式预期错误 | 反馈票证 |
将 C# 源代码大量复制/粘贴到 Office 中失败 | 反馈票证 |
指向成员变量的类内指针错误不正确 | 反馈票证 |
MSVC v19.37+ 算术表达式的代码生成不正确 | 反馈票证 |
C4506(内联函数没有定义)错误地报告了模板规格... | 反馈票证 |
cmath 函数缺少整数类型重载 | 反馈票证 |
GitHub Copilot 有一个翻译错误的“引用”按钮 | 反馈票证 |
更新到 VS 17.10 后,.ilk 文件的大小大大增加 | 反馈票证 |
Visual Studio 跳转列表不再添加最近打开的解决方案 | 反馈票证 |
工作效率
查找所需代码
将代码搜索范围从整个解决方案缩小到当前文档或当前项目。
你是否曾觉得在代码搜索中看到太多结果? 可以使用“代码搜索”中新添加的范围选项缩小焦点范围。
对于默认代码搜索体验和每个筛选器,现在可以将范围设置为整个解决方案、当前项目或当前文档,并切换是否包含外部文件。
可以为不同的筛选器设置不同的范围。 例如,可以将默认体验设置为查看整个解决方案,而将成员设置为仅查看当前文档。 所选设置将在当前会话结束后保留。
注意
必须在“工具 -> 管理预览功能”下启用此功能
查看功能票证以分享你的反馈并继续对话。
修复了 CodeLens 时间线
进行了修正以遵守 CodeLens 时间线配置以显示正确信息。
CodeLens 时间线现在遵守你的时间线配置以显示正确信息。 此修正解决了时间线不遵守文件更改悬停预览中设置的月份的问题。
查看功能票证以分享你的反馈并继续对话。
对拉取请求创建的更新
持续改进拉取请求创建体验。
我们改进了创建拉取请求的体验,包括目标分支选择、提交计数和其他稳定性修正。 此外,对于在属于拉取请求的一部分的提交中提到的工作项,我们现在会自动创建其链接。
更有意义的代码评审
直接在工作文件中查看 Azure DevOps 和 GitHub 拉取请求注释。
我们让你可以更轻松地直接在 Visual Studio 的工作文件中查看 GitHub 和 Azure DevOps 拉取请求注释。 现在可以留在自己的上下文中进行必要的代码更改,并与同事的建议进行交互,而无需将上下文切换到浏览器。
新的改进
启用功能标志“拉取请求注释”,签出具有活动拉取请求分支的任何分支,然后单击信息栏中的“在文件中显示注释”。
最新的改进包括更好地支持 @提及和工作项引用、对注意力点和注释边距的视觉改进、添加头像、更好地与服务器同步以及 Git 更改窗口中的其他入口点。
注意
必须在“工具 -> 管理预览功能”下启用此功能
查看功能票证以分享你的反馈并继续对话。参与这项调查,以帮助完善此功能。
熟悉的键盘快捷方式
一些常见的键盘快捷方式现在与其他常用 IDE 中的键盘快捷方式相匹配。
在不同的 IDE 和编辑器之间切换时,不得不重新学习键盘快捷方式,这可能会令人沮丧。 我们对某些默认键盘快捷方式进行了更改,使它们更熟悉并保留你的肌肉记忆。
切换行注释
很长一段时间以来,你都可以在 Visual Studio 中切换行注释,但默认键盘快捷方式是 Ctrl+K, Ctrl+/
。 我们现在添加了 Ctrl+/
作为替代快捷方式,这是许多其他 IDE 和编辑器中的默认快捷方式。
注意
请注意,对于非英语键盘,快捷方式可能有所不同。
打开命令面板
或者在 Visual Studio 中称为功能搜索。 此功能的默认键盘快捷方式现在是 Ctrl+Shift+P
,VS Code 用户应该可以熟悉地使用该快捷方式来打开命令面板。
查看功能票证以分享你的反馈并继续对话。
GitHub Copilot
在 GitHub Copilot 中引用方法
GitHub Copilot Chat 现在允许内联引用方法、类和函数。 该功能可帮助向 GitHub Copilot 提供更多上下文信息,进而帮助 GitHub Copilot 更深入地了解解决方案,从而提供更准确的响应。
通过直接在聊天中引用方法、类和函数,可以提供特定的上下文来帮助 GitHub Copilot 更好地理解其代码和手头的问题。 此功能使你能够向 GitHub Copilot 提供更丰富的上下文,从而通过更深入地了解代码库来提供更精确的响应。
如何在 GitHub Copilot Chat 中引用符号
要引用符号,只需使用 #
符号,后跟要引用的方法、类或函数的名称。
尝试向 GitHub Copilot Chat 提问
尝试向 GitHub Copilot Chat 提出诸如以下问题:
- 我有一个名为 #methodName 的测试方法。 如何确保正确执行该方法?
- 你能帮助我理解 #methodName1 和 #methodName2 函数之间的差异吗?
- 我的代码中使用的 #methodName 函数的输出位于何处,它的作用是什么?
- /explain #methodName
重要
若要使用此功能,请确保激活 GitHub Copilot
使用 GitHub Copilot 了解符号
GitHub Copilot 可帮助你在没有代码库的情况下了解不同调用中的符号。
GitHub Copilot 现已集成到将鼠标悬停在符号上时的工具提示中,以提供所选符号的 AI 生成的摘要。 这适用于 C# 和 C++ 开发人员。 此功能可帮助开发人员了解其代码库中不同调用的各种符号的说明。 通过将鼠标悬停在符号上并选择悬停工具提示中的告诉我更多信息选项,GitHub Copilot 可以生成所选符号的文档。
利用 LLM,GitHub Copilot 可通过在悬停工具提示中提供富于见解的说明和上下文来增强现有或缺少代码的文档。
重要
若要使用此功能,请确保激活 GitHub Copilot
查看功能票证以分享你的反馈并继续对话。
GitHub Copilot 正变得更加智能
GitHub Copilot 现在包含整个存储库中的上下文,并且可以搜索 Web。
Visual Studio 中的 GitHub Copilot Enterprise 订户现在可以使用 GitHub Copilot Chat 获取基于其整个存储库和必应搜索结果中的上下文扩充的答案。
从整个代码库获取答案
GitHub Copilot Chat 现在可以通过了解你的完整存储库(而不仅仅是你打开的选项卡)来回答问题。 在 GitHub.com 上为你的存储库编制索引,然后在提及 @github 的情况下提问。 你可以如下所示进行提问:@github 在何处实施了速率限制?
使用 Web 的上下文进行搜索
GitHub Copilot 聊天还可以搜索必应,以查找超出其常规知识或你的代码库的信息。 提到 @github 时,GitHub Copilot 会智能地决定何时使用必应。 你可以如下所示进行提问:@github Node.js 的最新 LTS 版本是多少?
必应搜索仅在管理员启用后才可用 - 有关详细信息,请参阅启用 GitHub Copilot Enterprise 功能或阅读这些文档。
重要
若要使用此功能,请确保激活 GitHub Copilot
GitHub Copilot 更加安全
GitHub Copilot Business 客户可以禁止使用指定的文件或存储库来为 GitHub Copilot 提出的代码完成建议提供信息。
GitHub Copilot 内容排除可供 GitHub Copilot Business 和 GitHub Copilot Enterprise 客户使用,以防止使用指定的文件或存储库来用于为 GitHub Copilot 提出的代码完成建议提供信息。
确保代码安全
GitHub Copilot 现在将排除受影响文件的内容。 这适用于 Visual Studio 中完成、内联、聊天和其他所有 GitHub Copilot 体验。
配置内容排除
对于存储库管理员和组织所有者,内容排除将可配置为文件、文件夹、文件类型等。 在 GitHub Copilot 文档中详细了解如何为 GitHub Copilot 配置内容排除项。
重要
若要使用此功能,请确保激活 GitHub Copilot
优化 GitHub Copilot 建议
通过 GitHub Copilot 与 Visual Studio 的集成,我们正在增强补全和聊天的体验。 此增强旨在简化工作流,让你更轻松地跨不同界面优化补全建议和转换对话。
通过 GitHub Copilot 与 Visual Studio 的集成,我们正在增强补全和聊天的体验。 此增强旨在简化工作流,让你更轻松地跨不同界面优化补全建议和转换对话。
使用内联聊天优化 GitHub Copilot 补全
现在,你可以更好地控制 GitHub Copilot 提供的建议。 现在你可以重试,而不仅仅是接受或忽略建议! 此功能让你可以通过添加上下文或调整补全来修改和策展 GitHub Copilot 提供的主动建议。
首先修改你的补全:
使用内联聊天优化提示:
将内联聊天提升到聊天窗口以获取更多上下文
通过将内联聊天提升到聊天窗口来保留其历史记录。 此功能使你能够保持对话的记录,并在方便时在大屏幕上延续聊天窗口。
选择在聊天窗口中继续...
重要
若要使用此功能,请确保激活 GitHub Copilot
简化命名操作
可以使用 GitHub Copilot 为 C++ 中的标识符生成命名建议。
GitHub Copilot 现在可以根据标识符的使用方式和代码样式为标识符(变量、方法或类)生成命名建议。
若要试用,你需要一个活动的 GitHub Copilot 订阅。 导航到要重命名的任何变量,右键单击 ->重命名(键盘:Ctrl+R
、Ctrl+R
)。 你将看到 GitHub Copilot sparkle 图标,可以单击或切换以生成命名建议。
此功能适用于 C#、C++ 和更多语言。
重要
若要使用此功能,请确保激活 GitHub Copilot
AI 智能变量检测
通过集成 AI 变量检测优化调试工作流程。
在 Visual Studio 中使用 Ask GitHub Copilot,检查和分析本地、自动和数据提示中的值从未如此简单。 只需右键单击任何值,即可获得有关错误、意外结果或异常的详细 AI 驱动见解,而无需离开 IDE。
每当出现意外值时,此功能都将在 IDE 中实时分析变量,从而显著提高故障排除速度。
重要
若要使用此功能,请确保激活 GitHub Copilot
AI 生成的断点表达式
使用 AI 生成的表达式在 C++ 中插入条件断点或跟踪点。
C++ 现在支持条件断点和跟踪点的 AI 生成的表达式。 GitHub Copilot 可分析代码并提供富于见解的断点表达式,从而简化调试过程。
将光标置于断点设置窗口中条件断点/跟踪点的条件文本中时,GitHub Copilot 将基于代码库及时提供 AI 生成的表达式建议。 你可以灵活地选择最符合放置条件断点/跟踪点的要求的条件。
重要
若要使用此功能,请确保激活 GitHub Copilot
调试和诊断
更轻松地修复异步异常
调试程序现在会在框架代码捕获到异步方法异常时中断。
调试异步代码(尤其是在 ASP.NET 等框架中)可能会很棘手,因为可能会跨异步边界抛出异常。
现在,使用 Visual Studio 调试程序,当 async Task
方法向框架代码抛出异常时,它会自动中断。
这就使你能够轻松识别和诊断 ASP.NET 应用程序中的问题,从而缩短调试周期并提高工作效率。
请注意,这仅适用于 .NET 9 及更高版本的项目。
查看功能票证以分享你的反馈并继续对话。
更快、更一致地进行分析
探查器中的检测工具现在会记住你在运行之间的目标选择。
现在,检测工具可以在运行之间保留目标选择,通过增强分析会话的连续性提供显著优势。
通过这一改进,你可以在多次检测运行中维护指定的目标,而无需重复选择任务。
轻松分析外部代码
探查器支持自动反编译 .NET 库,从而轻松分析外部代码。
Visual Studio 探查器现在可以在源代码不可用的情况下自动反编译 .NET 库。 通过在源代码查找期间自动反编译代码,即使没有加载的符号或确切的文件位置,也可以深入了解代码的结构和性能问题。
此功能在处理非用户外部代码时特别有利,它使你能够有效地分析和优化应用程序的性能,从而增强开发工作流。
查看功能票证以分享你的反馈并继续对话。
改进了 Arm64 上的调试
Visual Studio 调试程序支持清单中列出的 AnyCPU 应用程序作为 arm64 运行。
Visual Studio 原生支持在基于 Arm 的处理器上生成和调试 Arm64 应用。 遗憾的是,在 Arm64 计算机上运行使用 AnyCPU 设置生成的应用程序时,它们默认使用 x64 仿真。 尽管 x64 模拟器的功能已扩展,但当应用程序以原生方式运行时,将支持最有效的 Arm CPU 方案。
为了更好地支持预期的原生行为,Windows 24H2 更新为应用清单文件引入了一个新的 <supportedArchitectures> 设置。 .NET 开发人员可以提供受支持的体系结构(amd64 或 arm64)的列表,以明确指示使用 AnyCPU 设置生成的应用程序在 Arm64 设备上应当使用 Arm64 CLR 以原生方式运行。
使用此版本,Visual Studio 可以在应用程序启动时读取这些新的清单条目,从而允许基于正确的体系结构启动调试。
Blazor WebAssembly 调试
面向 .NET 9 或更高版本的 Blazor WebAssembly 应用的改进调试体验的预览版。
Visual Studio 现在提供了面向 .NET 9 或更高版本的 Blazor WebAssembly 应用的改进调试体验的预览版:
- 调试程序中显示的数据类型现在与预期的 .NET 数据类型匹配。
- 类型成员和成员可见性使用预期的图标。
- 显示的调用堆栈将被清理,只显示 .NET 调用堆栈,并正确遵循“仅我的代码”设置。
- 现在支持模块窗口。
- “即时”窗口中的表达式计算支持以及对监视和条件断点的支持得到扩展和改进。
若要启用新的预览调试体验,请执行以下操作:
- 启用启用新的 .NET 9+ Mono 调试程序设置。
- 安装最新的 .NET 9 SDK。
- 将 Blazor 应用更新为面向 .NET 9。
已知限制:
- 调试时热重载的功能尚未完全正常运行。 这个问题将在以后的更新后解决。
将断点自动添加到默认组
整理断点,以快速排查 Visual Studio 中默认断点组的问题。
现在,可以将所选断点组标记为默认组,从而确保该组中自动包含所有新添加的断点。
此增强功能简化了断点的管理和组织,以在调查多个问题时提供无缝调试。
查看功能票证以分享你的反馈并继续对话。
Expressive IEnumerable 可视化工具
通过 IEnumerable 可视化工具中的可编辑表达式功能,可以在 Visual Studio 调试程序中直接编辑和可视化 LINQ 表达式。
Visual Studio 调试程序现在 IEnumerable
可视化工具中提供可编辑的表达式功能,这是便于开发人员使用集合的强大增强功能。
概述
借助此功能,在可视化集合或数据集时,可以使用所需的 LINQ 表达式直接修改对话框顶部的表达式文本框。 可视化工具实时更新,反映查询产生的数据更改。
潜在应用程序
可编辑的表达式功能有助于调试密集数据集和复杂的集合操作。 可以根据需求轻松地将不同的筛选器或排序顺序应用于集合。 通过在 Visual Studio 调试程序中直接试验数据转换和筛选器,可以简化开发工作流并实现更高效的调试。 下面是自行试用的示例:
更快的 C++ 断点
使用 C++ 中增强的条件断点性能优化你的调试。
通过重新设计的实现,我们在 C++ 中显著提高了条件断点的性能。
我们的初步评估表明,版本 17.10 的性能至少提高了 35%,版本 17.11 P2 的性能至少提高了 70%,通过 80,000 次迭,将执行时间从 80 秒降低到了 21 秒。
如视频中所示,左侧显示版本 17.9 中的条件断点性能,右侧显示版本 17.10 及更高版本中的性能。
IDE
不缺失任何安装组件
通过使用 *.vsconfig 文件,可以确保团队安装了解决方案所需的所有必要组件和扩展。
许多团队使用 *.vsconfig 文件来标准化其团队的 Visual Studio 安装。 *.vsconfig 文件可以放置在存储库或项目的解决方案目录中,Visual Studio 将自动检测 *.vsconfig 文件中指定的组件是否缺失。
如有任何内容缺失,则会显示如下图所示的通知。
我们在 Visual Studio 2022 版本 17.11 预览版 1 中对此体验进行了两项改进。
- 首先,Visual Studio 现在可以检测安装中是否缺少任何本地或网络托管扩展,如果缺少,它会提示你安装它们。 以前,对于扩展,Visual Studio 只能识别市场扩展是否缺失。
- 其次,Visual Studio 现在将在某些情况下重新提示通知,例如 *.vsconfig 文件由于添加了新组件或扩展而发生更改时。 以前,通知只会弹出,直到你对其执行操作(此时,它将永远被抑制)。
查看功能票证以分享你的反馈并继续对话。
保持更新和安全
通过注册 Microsoft 更新,保持 Visual Studio 更新和安全。
保持软件定期更新是我们强烈建议的一种安全最佳做法。
从 2024 年 8 月开始,Visual Studio 安全更新将通过 Microsoft 更新频道提供给 Community SKU 用户,该频道是 Windows 更新系统的一部分。 注册此更新频道的 Community SKU 用户将在计算机空闲时自动以静默方式和在后台接收和安装 Visual Studio 每月安全更新,这使得保持更新和安全变得非常容易。 请阅读这篇博客文章,了解更多信息。
此功能是管理员更新解决方案的扩展,旨在帮助组织保持安全。 包括 Microsoft 在内的许多企业一直在使用此解决方案每月自动部署数十万个安全更新。
查看功能票证以分享你的反馈并继续对话。
新的 Teams 工具包模板
Teams 工具包添加了新的 Teams 应用模板,以提供更好的 Teams 开发体验。
Teams 工具包现在提供了一个空的 Teams 模板,可用于与现有项目连接,或将其用作新 Teams 应用的起点。
- 从此空模板开始创建任何 Teams 应用。
- 如果要将 Teams 功能添加到现有项目,请将空的 Teams 应用添加到项目中,然后按照 https://aka.ms/Config-Teams-app 进行简单的编辑来连接两个项目。
Teams 工具包支持对来自 API 的搜索结果消息扩展应用的身份验证。
经过改进的用户身份验证
Visual Studio 现在使用 Windows 身份验证代理(也称为 WAM)作为默认身份验证机制。
Visual Studio 现在使用 Web 帐户管理器 (WAM) 作为其主要身份验证机制。 此集成不仅简化了 Visual Studio 的身份验证体验,还增强了凭据的安全性。
新的 WAM 体验如下所示:
这对你的体验有何影响?
使用 WAM 作为默认身份验证体验有很多好处,包括:
- Windows 集成:除了减少身份验证提示的总数之外,现在还可以选择现有的 Windows 帐户,而不必重复输入凭据。
- 更好的令牌保护:刷新令牌得到了更好的保护,因为它们现在与设备绑定。
- 支持最新的安全功能:
- 利用丰富的操作系统功能,例如 Windows Hello 和 FIDO 密钥。
- 访问最新、最强大的 Microsoft Entra ID 功能和条件访问策略。
Web
发现动态 Web API 路由
终结点资源管理器已更新,可在运行时发现终结点。
使用 ASP.NET Core Web API 时,可以使用终结点资源管理器查看终结点并与之交互。
终结点资源管理器会以静态方式发现终结点,以显示初始终结点集。 一些终结点是无法以静态方式发现的。 例如,在类库项目中定义的任何终结点就是一个实例。 可通过其他方法注册无法以静态方式发现的终结点。
运行或调试 Web API 时,Visual Studio 还会在运行时发现路由,并将其添加到终结点资源管理器。
查看功能票证以分享你的反馈并继续对话。
NPM 包在解决方案资源管理器中显示
看到你的 NPM 包显示在解决方案资源管理器的“依赖项”节点下。
我们统一了你在 ASP.NET、JavaScript 和 TypeScript 项目中获得的 NPM 体验。 因此,你现在还将看到 NPM 包在 JavaScript 和 TypeScript 项目的解决方案资源管理器中列出。
这与 NuGet 的体验相同,但现在 NPM 也是如此。
游戏
Unreal Engine 添加类模板
使用新的“添加类”将常见的 Unreal Engine 类模板添加到项目中。
你现在可以使用新的添加类对话框将其他常见 Unreal Engine 类模板添加到项目中。 此对话框提供了可添加到项目的常见 Unreal Engine 类模板的列表。 现在,还可以将类添加到你选择的模块。
首先,右键单击“解决方案资源管理器”中的项目,然后选择添加>Unreal Engine 项。 在添加新项对话框中,选择 Unreal Engine 常用类以打开添加类对话框。
查看功能票证以分享你的反馈并继续对话。
Unreal Engine 添加模块
使用新的“添加模块”将 Unreal Engine 模块添加到项目。
现在,可以使用新的“添加模块”对话框将 Unreal Engine 模块添加到项目中。
首先,右键单击“解决方案资源管理器”中的项目,然后选择添加>Unreal Engine 项。 在“添加新项”对话框中,选择“空 Unreal Engine 模块”以打开“添加模块”对话框。
查看功能票证以分享你的反馈并继续对话。
Unreal Engine 添加插件
使用新的“添加插件”将 Unreal Engine 插件添加到项目。
现在,可以使用新的添加插件对话框向项目添加 Unreal Engine 插件。
首先,右键单击“解决方案资源管理器”中的项目,然后选择添加>Unreal Engine 项。 在添加新项对话框中,选择 Unreal Engine 插件以打开 添加 Unreal Engine 插件对话框。
Unreal Engine 工具栏
通过专用工具栏快速访问 Unreal Engine 相关操作。
新的 Unreal Engine 工具栏提供对 Unreal Engine 相关操作的快速访问。 在 Visual Studio 中加载 Unreal Engine 项目时,该工具栏可用。 工具栏包含以下操作:
- 快速附加到 Unreal Engine 进程
- 重新扫描蓝图缓存
- 快速访问 Unreal Engine 日志
- 快速访问 Visual Studio 的 Unreal Engine 配置页面
.NET
修改的资源浏览器
全新的资源浏览器使在 .NET 中管理 .resx 文件变得比以往更容易。
在此版本的 Visual Studio 中,我们将引入修改的资源浏览器 UI,以更好地满足新式 .NET 开发人员的需求。
在此更新中,我们进行了以下改进:
- 多资源视图:现在可以加载多个文件并在同一视图中一次性查看所有本地化。
- 搜索和筛选:我们添加了搜索,使得在大型解决方案中查找资源变得轻而易举。
- 注释:资源的每个翻译现在都有自己的注释,所有内容都在数据网格中一次性可见。 使用注释查找每个单元格角落的小三角形图标。
- 警告:占位符验证和缺少翻译警告。
- 辅助功能和 UI:我们改进了与屏幕阅读器和辅助技术的兼容性,向数据网格添加了缩放功能,现在允许编辑器(包括深色模式)的 VS 主题设置。
查看功能票证以分享你的反馈并继续对话。参与这项调查,以帮助完善此功能。
C++
Build Insights QoL 更新
为 C++ Build Insights 添加各种生命周期质量改进。
在此更新中,我们向 C++ Build Insights 集成添加了生命周期质量更改。 现在可按项目筛选 Build Insight 跟踪结果。 对于每一行的结果,现在会看到相对路径和文件名,而不是完整路径。 我们还改进了“包含的文件”视图中结果的分组。
在 Linux 上调试 CMake 项目
使用 WSL 和 SSH 来调试针对 Linux 的项目的 CMake 脚本。
我们通过 WSL 或 SSH 在面向 Linux 的 CMake 项目中添加了对 CMake 调试程序的支持。 CMake 调试程序允许通过 Visual Studio 调试程序调试 CMake 脚本和 CMakeLists.txt 文件。
若要启动 CMake 调试会话,请在 CMakeLists.txt 文件中设置断点,然后导航到“项目 > 使用 CMake 调试配置缓存”。
查看功能票证以分享你的反馈并继续对话。
自定义 Clang-Tidy 可执行文件
将自定义 clang-tidy 工具集成到所有项目中。
现在可以对所有项目使用自定义 clang-tidy 可执行文件。 这样,你便可以使用自己的自定义规则对各个项目运行 clang tidy,而无需依赖默认的 clang-tidy 可执行文件。
通过此全局设置,可以无缝集成自定义 clang-tidy 规则,且无需覆盖现有的 clang-tidy 可执行文件。
若要激活此功能,请导航到配置属性>代码分析>Clang-Tidy,然后直接输入其路径或使用 Clang-Tidy 工具目录属性中的浏览选项。 保存更改并重新编译你的应用,使新的可执行文件生效。
版本 17.11.5
发布日期:2024 年 10 月 8 日
热门 bug 修复 | 来自社区 |
---|---|
适用于 iOS/tvOS/macOS/macCatalyst 的 .NET 发行说明。 | |
将 Visual Studio 安装的 Windows 11 SDK (10.0.26100.0) 更新为 2024 年 10 月维护版本。 | |
Visual Studio 2022 17.11.0 中的 MSB4057 错误 | 反馈票证 |
向项目中添加类时出错。 | 反馈票证 |
带有 Amazon Q 扩展的 AWS 工具包的 MEF 组件问题。 | 反馈票证 |
已解决的安全公告 | CVE |
---|---|
System.Security.Cryptography.Cose、System.IO.Packaging、System.Runtime.Caching 中的 .NET 拒绝服务漏洞 | CVE-2024-43483 |
System.IO.Packaging 中的 .NET 拒绝服务漏洞 | CVE-2024-43484 |
System.Text.Json 6.0.x 和 8.0 中的 .NET 拒绝服务漏洞。 | CVE-2024-43485 |
Visual Studio 收集器服务中的拒绝服务漏洞 | CVE-2024-43603 |
Visual Studio C++ 可再发行组件安装程序中的权限升高漏洞 | CVE-2024-43590 |
版本 17.11.4
发布日期:2024 年 9 月 17 日
热门 bug 修复 | 来自社区 |
---|---|
在解决方案资源管理器中复制文件时出现 System.NullReferenceException。 | 反馈票证 |
修复了响应解决方案事件可能导致从项目读取不完整状态的问题。 | |
修复了在不同 SDK 版本(包括 Xamarin)之间切换时出现的 ArgumentNullException iOS 远程生成错误。 | 反馈票证 |
VS 现在包含 MAUI 8.0.82 (SR8.2)。 | |
使用 Debug.Restart 时始终显示错误并停止调试 (Ctrl+Shift+F5)。 | 反馈票证 |
修复了安装 .NET SDK 9.0.100-rc.1 或更高版本后导致 .NET 生成失败的问题。 | |
此修补程序解决了以下情况:添加没有助手许可证的 GitHub 帐户会使助手进入错误状态,从而导致助手不可用。 | 反馈票证 |
添加条件断点会导致无条件崩溃。 | 反馈票证 |
资源资源管理器无法打开 resx 文件。 | 反馈票证 |
“转到定义”不起作用。 | 反馈票证 |
版本 17.11.3
发布日期:2024 年 9 月 10 日
热门 bug 修复 | 来自社区 |
---|---|
17.11.0 更新后无法发布 .NET Framework 应用程序。 | 反馈票证 |
Visual Studio 17.11.0 更新后无法与 Mac 配对。 | 反馈票证 |
17.11.0 错误输出中断测试。 |
已解决的安全公告 | CVE |
---|---|
SQL Server Native Client OLE DB 提供程序远程代码执行漏洞 | CVE-2024-35272 |
版本 17.11.2
发布日期:2024 年 8 月 27 日
热门 bug 修复 | 来自社区 |
---|---|
修正了安装 PackageId:AndroidPlatformMAUI2 时 Visual Studio 安装程序的故障。 |
版本 17.11.1
发布日期:2024 年 8 月 20 日
热门 bug 修复 | 来自社区 |
---|---|
Visual Studio 2022(64 位)版本 17.11.0 预览版 6.0 在停止调试本机应用程序时损坏堆栈 | 反馈票证 |
Xamarin Profiler 已被弃用,并从 Visual Studio 中删除。 | |
Xamarin.Android 设计器已计划被弃用,并将在未来的更新中删除。 |
提示
如果希望在 Visual Studio 的未来更新中看到某些功能,请通过提交功能票证告知我们。
注意
我们的路线图显示了 Visual Studio 未来的优先事项和方向,因此请务必查看。
注意
此更新可能包括单独许可的新 Microsoft 或第三方软件,如第三方通知或其随附许可证中所述。
团队全体成员感谢你选择 Visual Studio。 如果你有任何疑问,请通过 Twitter 或开发者社区联系我们。
祝你编码愉快!
Visual Studio 团队