Visual Studio 2022 发行说明

我们很高兴地宣布 Visual Studio 2022 v17.14 的可用性。 此更新侧重于稳定性和安全性,以及针对所有开发人员的 AI 改进

下载 Visual Studio 2022 v17.14 ,享受这些新功能和改进。

功能

2025 年 5 月 13 日发布的 17.14 功能列表。

GitHub Copilot(GitHub 自动助手)

Copilot 代理模式(预览版)

Copilot 代理模式是 AI 辅助开发的下一个演变 -- 现已在 Visual Studio 中以预览版提供。

作为自治对等程序员,Copilot 代理可以按照你的方向处理复杂的多步骤任务。 它智能地导航代码库、分析相关文件、建议代码更改、运行终端命令和测试,甚至对生成和测试错误做出反应。 它可以监视调试和分析输出,并在任务完成之前以迭代方式自我更正,从而释放你专注于最重要的内容。

代理模式

若要试用,请打开 GitHub Copilot 聊天窗口。 文本输入字段下方会显示模式选择器:手动(聊天)或自动(代理)。 切换到自动(代理)可将 Copilot 转换为帮助加速工作的动手编码合作伙伴。

重要

Copilot 代理模式处于预览状态,默认情况下处于关闭状态。 若要启用 Copilot 代理模式,请执行以下作:

  1. 从中打开选项菜单 Tools->Options
  2. 选择 GitHub 类别
  3. 选择 Copilot 子类别
  4. 勾选“启用 Copilot 代理模式”选项Enable Agent Mode in Chat

重要

激活 GitHub Copilot Free 并解锁此和其他 AI 功能。 无需试用。 无需信用卡。 只需提供 GitHub 帐户。

立即免费激活 GitHub Copilot


MCP 服务器支持(预览版)

使用新的模型上下文协议(MCP)将 Visual Studio 连接到 AI 代理,这是共享上下文、访问数据和驱动智能功能的标准化方法。

我们很高兴在 Visual Studio 中引入对模型上下文协议 (MCP) 服务器的预览支持 — 为 AI 驱动的开发带来了强大的新功能! MCP 是一种开放协议,用于标准化应用和 AI 代理共享上下文、访问数据以及采取措施的方式,从而实现更智能和集成的体验。

借助 Visual Studio 中的 MCP 服务器支持,现在可以:

  • 使用一致的协议无缝连接到 AI 代理和服务
  • 构建更智能的工具,了解开发上下文
  • 简化 Copilot 和其他 AI 支持的助手的集成

这是使 Visual Studio 成为完全与 AI 连接的开发环境迈出的重要一步。

了解如何 在 C# 中生成自己的 MCP 服务器

重要

激活 GitHub Copilot Free 并解锁此和其他 AI 功能。 无需试用。 无需信用卡。 只需提供 GitHub 帐户。

立即免费激活 GitHub Copilot


GitHub Copilot 演练

Visual Studio 中现已提供 GitHub Copilot 演练,有助于快速启动和运行。 利用演练,将了解如何直接在编辑器中使用关键 Copilot 功能。

我们很高兴在 Visual Studio 中推出 GitHub Copilot 演练! 演练是内置于编辑器中的交互式指南,有助于逐步探索 GitHub Copilot 的功能。 无论是 GitHub Copilot 的新手还是想要了解其最新功能,演练都会让你比以往任何时候都更加轻松入门。

开始使用演练

可以直接从 Visual Studio 启动 Copilot 演练,方法是转到 Copilot 按钮(右上角)→ GitHub Copilot 演练

打开后,将看到引导式活动,这些活动将介绍 Copilot 体验的不同部分,例如:

  • 在聊天中编写提示

  • 使用内联代码补全

  • 接受、编辑或拒绝 Copilot 建议

  • 探索和了解 Copilot 编辑等新功能

演练是在深入了解文档和实践用法之前,简要了解 Copilot 功能的好方法!

如何访问演练

首次登录 GitHub Copilot 时,GitHub Copilot 演练会自动打开,使入门变得非常轻松! 若要稍后重新访问它,只需转到 Visual Studio 中的 GitHub Copilot GitHub Copilot > 演练即可。

无论是首次探索 GitHub Copilot,还是只需要快速回顾一下,本演练都是发挥 Copilot 全部潜能的友好指南。 深入了解并开始自信地创建!

演练

重要

激活 GitHub Copilot Free 并解锁此和其他 AI 功能。 无需试用。 无需信用卡。 只需提供 GitHub 帐户。

立即免费激活 GitHub Copilot


GPT-4o 代码完成模型 📣

引入 GPT-4o Copilot 代码完成模型,使你获得更高质量的完成。

我们很高兴地宣布,新的 GPT-4o Copilot 代码完成模型现已在 Visual Studio 17.14 中为 GitHub Copilot 用户提供! 这种基于 GPT-4o mini 的高级模型经过了 275,000 多个优质公共存储库的进一步训练,涉及 30 多种常用编程语言。 因此,开发人员可以期待更准确的建议和增强的性能。

GPT-4o Copilot 访问须知:

  • Copilot Pro、Business 或 Enterprise 用户:现在可以在 17.14 及更高版本中使用新模型。
  • Copilot 免费用户:使用此模型将计入您每月 2,000 次免费完成次数。

📣 查看功能票证以分享你的反馈并继续对话。

重要

激活 GitHub Copilot Free 并解锁此和其他 AI 功能。 无需试用。 无需信用卡。 只需提供 GitHub 帐户。

立即免费激活 GitHub Copilot


AI 文档注释生成 📣

自动生成C++和 C# 函数的文档注释。

Copilot 现已无缝集成到 Visual Studio 的代码编辑器中,通过为函数生成文档注释来显著提高工作效率。

为项目启用自动文档注释生成后,只需根据设置配置(例如) ///键入注释模式,Copilot 将根据函数的内容立即完成函数说明。 此功能可节省宝贵的时间和精力,使你能够更专注于编码,减少文档。

AI 文档注释

此游戏更改功能适用于C++和 C# 项目文件,使编码体验更流畅、更高效。

📣 查看功能票证以分享你的反馈并继续对话。

重要

激活 GitHub Copilot Free 并解锁此和其他 AI 功能。 无需试用。 无需信用卡。 只需提供 GitHub 帐户。

立即免费激活 GitHub Copilot


下一步编辑建议

NES 利用先前所做的编辑并预测接下来的编辑,无论是插入、删除还是混合两者。

我们非常高兴地宣布,Visual Studio 现已提供“下一步编辑建议”(简称 NES),以进一步改善编码体验。 NES 可利用之前的编辑并预测下一次编辑,无论是插入、删除还是两者的混合。 “补全”只能在插入符号位置生成建议,而 NES 则不同,它可以支持在文件的任何位置进行下一步编辑。 NES 通过支持开发人员的代码编辑活动,增强了现有的 Copilot 完成体验。

NES 入门

通过“工具”→“选项”→“GitHub”→“Copilot”→“Copilot 完成”→“启用下一次编辑建议”启用 NES。

与完成一样,获取 NES 需要做的就是开始编码!

当你看到编辑建议时,如果它位于与你现在位于的行不同的行上,则建议 你首先按 Tab 导航到相应的行 。 无需再手动搜索相关的编辑内容,NES 将提供指引!

用于跳转提示栏的 NES 选项卡

与编辑在同一行后,可以按 Tab 键接受建议。

按下 NES 的 Tab 键以接受提示栏

注意:可以通过转到“工具→选项”来打开/关闭提示栏, → IntelliCode →高级→隐藏以灰色文本显示的提示

除了提示栏外,滚动条槽中还会弹出一个箭头,表示有可用的编辑建议。 可以单击箭头来查看编辑建议菜单。

NES 装订线箭头

示例方案

下一步编辑建议可以在各种情况下发挥作用,不仅可以做出明显的重复性修改,还可以做出合乎逻辑的修改。 下面是一些示例:

将 2D 点类重构为 3D 点:

NES 重构点类

使用 STL 将代码语法更新为新式 C++:

请注意,NES 并不只是进行重复性更改,如将所有 printf() 更新为 std::cout,而且还更新了其他语法,如 fgets()

NES 更新C++语法

根据新添加的变量进行逻辑更改:

NES 对新变量做出了快速反应,增加了玩家在游戏中的最大猜测次数,而 Copilot 完成也会跳出来提供帮助。

NES 添加新变量

重要

激活 GitHub Copilot Free 并解锁此和其他 AI 功能。 无需试用。 无需信用卡。 只需提供 GitHub 帐户。

立即免费激活 GitHub Copilot


自适应粘贴

现在可以让 Copilot 调整粘贴的代码,以适应现有代码的上下文。

在 Visual Studio 中粘贴代码时,通常需要一些额外的步骤才能使代码无缝运行。 可能需要调整参数以匹配解决方案中已使用的参数,或者语法和样式可能与文档的其他部分不一致。

自适应粘贴功能可自动调整粘贴的代码以适应现有代码的上下文,最大限度地减少手动修改的需要,从而节省时间和精力。 此功能还支持小错误修复、代码样式、格式化、人类语言和代码语言翻译以及填空或继续模式任务等场景。

例如,如果有一个实现了 Math 接口的 IMath 类,那么将 Ceiling 方法的实现复制并粘贴到同一文件中,就能使其适应尚未实现的接口成员 Floor 的实现。

调整已粘贴的方法以实现接口

执行常规粘贴 {KeyboardShortcut:Edit.Paste} 时,将出现自适应粘贴 UI。 只需按 TAB 键请求建议,就会显示原始粘贴代码与调整后代码的比较结果。

今天就试用它,通过启用 “工具→选项”→ GitHub → Copilot → 编辑器→启用自适应粘贴

重要

激活 GitHub Copilot Free 并解锁此和其他 AI 功能。 无需试用。 无需信用卡。 只需提供 GitHub 帐户。

立即免费激活 GitHub Copilot


使用 Copilot 实现

现在可以让 Copilot 完全实现你的空 C# 方法。

现在,如果要在尚未实现的 C# 代码中引用方法,则可以使用名为 Generate 方法 的常见灯泡重构来立即在类中创建该方法。 但是,此重构仅创建一个具有正确签名的方法,而方法本身只是一个空的框架和 throw new NotImplementedException 行。 这意味着,虽然方法在技术上存在,但你必须做更少的工作来创建它,你仍然需要自己实现该方法,这可能需要更多时间。

使用 Copilot 重构实现旨在让你在此方案中提高工作效率,让你能够在 GitHub Copilot 的帮助下自动实现或将肉添加到方法中。 当遇到一个只包含 NotImplementedException 抛出的空方法时,可以在那一行上点击灯泡图标(CTRL+.),然后选择“使用 Copilot 实现重构”,Copilot 会根据现有代码库、方法名称等自动补全方法的所有内容。

使用 Copilot 实现

重要

激活 GitHub Copilot Free 并解锁此和其他 AI 功能。 无需试用。 无需信用卡。 只需提供 GitHub 帐户。

立即免费激活 GitHub Copilot


调试和诊断

适用于 .NET MAUI 应用的新调试器

集成到 Visual Studio Core 调试器中的 .NET MAUI 的新 Mono 调试引擎。

用于 .NET MAUI 应用的新 Mono 调试器是集成到 Visual Studio 调试器中的高级调试引擎。 它在可靠性、性能以及与 Visual Studio 其他部分的功能一致性方面有显著改进。

显著的增强功能包括仅我的代码、变量和表达式评估。

要使用此功能,请确保您已启用以下 Visual Studio Preview 选项:为 MAUI 应用启用新的 .NET Mono 调试器

适用于 .NET MAUI 应用的新调试器

目前,此功能仅适用于 Android 平台。 iOS 支持即将推出。

显示 LINQ 表达式的数据提示 📣

带子句悬停数据提示的增强 LINQ 表达式调试体验。

生成和排查 LINQ 查询问题可能是一个繁琐而复杂的过程,通常要求精确的语法知识和无数次迭代。 为了缓解这些挑战,Visual Studio 2022 的调试器现在提供了一个 LINQ 悬停数据提示功能。

当在调试过程中处于中断状态时,可以将鼠标悬停在 LINQ 查询的单个子句或段上,以便在运行时计算即时查询值。

此外,您还可以单击 DataTip 末尾的 GitHub Copilot 图标,对您悬停过的特定查询子句借助 Copilot 进行分析。 然后,Copilot 会解释该子句的语法,并说明为什么会得到指定的结果。

LINQ 悬停数据提示框示例

此功能显著提高效率,使调试体验更流畅、更轻松,帮助你更快地查明与 LINQ 查询相关的问题,并简化整个开发工作流。

📣 查看功能票证以分享你的反馈并继续对话。

Zero-Length 数组分配洞察

.NET 分配工具现在标识零长度的数组分配,帮助优化内存使用率和性能。

.NET 分配工具现在提供对零长度数组分配的详细见解,帮助你识别和优化不必要的内存使用情况。 虽然这些分配单个看起来无关紧要,但它们会迅速累积并影响性能,尤其是在高性能或内存受限的应用程序中。

本机检测工具

通过此更新,可以通过单击“调查”链接来调查零长度的数组分配,这将打开“分配”视图,显示分配详细信息。 双击可以显示这些分配发生的代码路径,从而实现精确的优化。 为了提高效率,请考虑使用 Array.Empty<T>()(静态分配的空数组实例)来消除冗余的内存分配。

Git 工具

查看传出/传入提交记录 📣

Git 存储库窗口现在在其工具栏上提供一个筛选器,用于仅显示传出/传入提交。

“Git 存储库”窗口是了解 Git 历史记录的首选位置。 当你在本地分支上工作时,本地分支可能会与远程分支不同步,原因可能是因为你创建了新提交(传出)或有新的提交需要拉入(传入)。

使用工具栏中可用的新传出/传入筛选器,你就能立即发现这些未同步的提交。 您的提交,他们的提交 - 轻松扫描,保持完美同步!

仅显示传出/传入工具栏按钮

📣 查看功能票证以分享你的反馈并继续对话。

还原 Git 存储库窗口 📣

使用此新设置在重启之间保持“Git 存储库”窗口打开。

作为分支作的专用环境, Git 存储库窗口 可能是日常开发的核心。 如果你发现自己经常在每个 Visual Studio 会话中重新打开它,此更新旨在节省时间和精力。

Git 存储库窗口分支列表。

我们已向 Git > 设置 添加了一个新设置,用于在重启 Visual Studio 时自动还原 Git 存储库窗口。 此外,窗口将包含在保存的窗口布局中,从而增强自定义选项。

默认情况下,该功能是关闭的,以确保不需要的人不受影响。 但是,如果你喜欢方便,此设置非常适合你。

“Git 设置”页,其中包含“还原 Git 存储库”窗口复选框。

📣 查看功能票证以分享你的反馈并继续对话。

默认分支名称 📣

允许用户在创建新的 git 存储库时自定义初始默认分支。

现在可以直接通过 Visual Studio 为新 Git 存储库来设置默认分支名称。 这一新设置可与 Git 配置顺利集成,从而更轻松地根据自己的偏好调整工作流程。

使用主分支创建新存储库后,Git 更改窗口

只需导航到 Git > 设置,下次创建存储库时,就会看到自定义分支名称自动生效。

“Git 设置”页,其中包含“默认分支名称”文本框

📣 查看功能票证以分享你的反馈并继续对话。

IDE

增强的 NuGet 身份验证

NuGet 现在在要求你提供凭据时提供上下文。

我们改进了 NuGet 身份验证过程。 如果我们检测到任何潜在的身份验证问题,您将会看到一个新的身份验证对话框,其中提供了有关信息流和特定帐户需求的相关信息。

NuGet 身份验证对话框

此更新增强了多重身份验证 (MFA) 方案的重新身份验证过程,解决了连续身份验证提示的问题,并确保在管理专用 NuGet 源时获得更流畅的整体体验。

Microsoft 365 代理工具包

Teams 工具包 17.14 GA 更新。

产品更新:Teams 工具包重命名为 Microsoft 365 代理工具包

我们很高兴地宣布,我们的产品(以前称为 Teams 工具包)已重命名为 Microsoft 365 代理工具包。 此更改反映了我们扩大的重点和承诺,以支持 Microsoft 365 生态系统中更广泛的平台和项目类型。

随着我们不断增强产品,我们将重点从仅支持 Teams 开发转向使开发人员能够在 Microsoft 365 平台中创建 Microsoft 365 Copilot 代理和其他应用程序。 这些平台包括 Microsoft 365 Copilot、Microsoft Teams、Office 系列和 Outlook。 通过这种范围扩展,我们可以通过提供全面的工具、模板和资源来更好地为用户提供服务,以便开发各种Microsoft 365 解决方案。

新名称Microsoft 365 Agents Toolkit,更好地代表了产品的各种功能和功能。 我们相信,此更改将帮助我们的用户更轻松地识别 Microsoft 365 环境中可用的各种开发机会。

感谢你在不断发展以满足开发人员社区不断增长的需求时继续提供支持。

创建声明式代理

我们很高兴地宣布,在此版本中,我们添加了用于为 Microsoft 365 Copilot 生成声明性代理的项目模板。

创建 DA 项目

可以创建带有或不带有操作的声明性代理。 可以选择定义新的 API,或利用现有的 API来执行任务或检索数据。

使用 Microsoft 365 代理工具包在 Microsoft Copilot 中调试和预览声明性代理。

启用平滑的一键式调试

在以前版本的 Teams 工具包(现在称为 Microsoft 365 Agents Toolkit)中,当用户调试生成的任何解决方案时,需要在调试项目之前使用命令 准备 Teams 应用依赖项 。 此命令触发了工具包,以帮助开发人员创建必要的资源进行调试,例如注册或更新 Teams 应用。

为了增强 Visual Studio 用户的调试体验并使其更加直观,我们取消了这一步骤,并启用了一键调试体验。 现在可以直接点击调试按钮,而无需任何准备步骤。 但是,如果在两个调试事件之间对应用清单进行了编辑,并且需要更新应用,则仍存在执行此作的选项。 我们提供两种调试模式:

调试方案

  • 使用更新应用进行调试:如果对应用进行了编辑,请选择默认配置文件 [Your Target Launch Platform] (browser) ,以确保应用更新。
  • 在不更新应用的情况下进行调试:选择第二个配置文件 [Your Target Launch Platform] (browser) (skip update app) 跳过更新应用资源,使调试更轻松、更快。
升级到 .NET 9

此外,在此版本中,我们已刷新所有项目模板以支持 .NET 9。

.net9 支持

祝你编码愉快!
Microsoft 365 代理工具包团队

跨主题保留字体首选项 📣

更改主题现在将保留字体和字号首选项。

我们理解,开发人员在编码时选择的字体是个人选择,受可读性、辅助功能或美学偏好的影响。 Visual Studio 主题主要侧重于演示颜色,与你的首选字体无关。

通过此更新,我们引入了在切换主题时保留字体和大小选项的功能。 现在,你可以在 Visual Studio 中设置一次字体首选项,并切换主题,而无需每次重新配置字体设置。 请注意,字体的颜色仍然与主题相关联,因为这是主题的目的,但你的字体选择将被保留。

Visual Studio 编辑器使用相同字体显示相同的代码段,但其中一半的代码采用深色主题,一半为浅色。

📣 查看功能票证以分享你的反馈并继续对话。

桌面

32 位程序集的工具箱支持

使用 Windows 窗体 (WinForms) 进程外设计器,在自动添加到 .NET Framework 项目工具箱的显式程序集引用中发现自己最喜爱的 Windows 窗体 (WinForms) 控件。

适用于 .NET Framework 项目的 WinForms 进程外设计器现在通过自动发现和显示独立程序集引用中存在的控件(也称为 显式程序集引用)来增强体验。

此功能极大地丰富了引用旧版 32 位程序集的 .NET Framework 项目的设计时间体验。 用户可以利用改进的工具配置,以便更好地与新式开发工作流集成并提高工作效率。 有关详细信息,请阅读我们的博客帖子

在设计时更新 UI 📣

实时预览、热重载和其他 UI 工具现在可在设计时使用。

现在可以在设计时进行实时预览,实时查看应用 UI 的变化。 还可以通过这种方式使用热重载和其他实时 UI 工具,确保工作流程的无缝衔接。

即使脱离调试器,也可以使用这些工具,从而不间断地对设计进行实验和改进。

实时预览演示

单击新的实时预览指示器,在设计时从任何 XAML 文件访问实时预览:

实时预览屏幕截图

无论你是在开发新的 .NET MAUI 应用还是优化现有的 WPF 应用,这些增强功能都有助于更快、更自信地交付高质量的应用程序。

📣 查看功能票证以分享你的反馈并继续对话。

新的 UWP .NET 9 MSTest 项目模板 📣

Visual Studio 现在包括面向 .NET 9 和 Native AOT 的更新的 UWP MSTest 项目模板。

Visual Studio 现在包括面向 .NET 9 和本机 AOT 的新 UWP MSTest 项目模板。 我们与 MSTest 团队密切合作,将 UWP .NET 9 项目的所有必要支持添加到 MSTest 库、基础结构以及 Visual Studio 测试主机。 UWP 测试项目能够面向 .NET 9 并利用所有新式 .NET SDK 和 MSTest 工具,同时仍按预期在 UWP 上下文中运行。

UWP .NET 9 MSTest 项目模板

之前使用 .NET Native 的 UWP MSTest 项目模板仍然可用。 不过,我们建议今后使用针对 .NET 9 和本地 AOT 的新项目模板。 在 Visual Studio 17.13 中,我们调整了所有 UWP 模板的排序,以便在搜索结果中优先考虑新的 .NET 9 项目模板。

📣 查看功能票证以分享你的反馈并继续对话。

可扩展性

安装扩展包

安装程序现在可以处理扩展包的安装。

安装程序现在支持扩展包,它们是由单个扩展引用的多个扩展组合而成的捆绑包。

若要在安装程序中使用扩展包,请先在 .vsconfig 文件中指定所需的扩展。 然后,使用 Visual Studio 安装程序的导入配置功能导入包含扩展详细信息的 .vsconfig 文件。

有关创建或生成 .vsconfig 文件的详细信息,请参阅 安装配置文档

导入 .vsconfig 文件后,将定向到修改屏幕,其中扩展将在安装摘要窗格中的自己的标题下分组。 在这里,可以选择或取消选择整个扩展包或任何包中的单个扩展。

通过 Visual Studio 安装程序扩展安装

更快的 VSIX 生成时间

具有一个或多个项目引用的 VSIX 项目现在使用智能增量生成,大大提高了 F5 方案和开发人员工作效率。

如果要开发包含多个项目的 Visual Studio 扩展,你将喜欢此性能增强功能! 具有一个或多个项目引用的 VSIX 项目现在只会生成实际需要重新生成的项目,从而使开发工作流的速度更快。

Vsix 生成 Perf

工作原理

改进了快速更新检查系统,以便更智能地确定解决方案中的哪些项目需要重新生成:

  • 如果您修改了项目 A,而该项目依赖于项目 B 和 C,那么只有项目 A 会被重新生成。
  • 如果修改项目 B,则仅重新生成项目 A 和 B
  • 这个智能功能扩展到整个项目的依赖树中。
实际影响

在实际方案中,性能改进是实质性的。 例如,Visual Studio 附带的 GitHub Copilot 扩展(项目约 30 个项目)的生成时间改进了 50% 以上的增量更改 - 将生成时间从大约 60 秒缩短到 24 秒!

此增强功能特别适用于:

  • 具有多个依赖项的大型 VSIX 项目
  • 快速迭代开发工作流
  • 频繁的 F5 调试会话

请注意,如果解决方案仅包含单个项目,则不会看到此增强功能带来的任何性能优势。

注意:这仅适用于 SDK-Style VSIX 项目。

现在您的扩展开发速度显著提升——享受编码的乐趣吧!

扩展管理器更新 📣

Visual Studio 中的扩展管理器有几项新的改进,可更轻松地管理扩展。

我们很高兴在 Visual Studio 中推出一系列强大的新功能,这些功能可简化工作流程并改善扩展管理体验。 这些更新可确保轻松获取最新信息,并更轻松地控制更新的应用方式和时间。

最新动态

无缝自动更新

Visual Studio 现在会在打开应用程序时自动触发更新,确保始终拥有最新的功能和修补程序,而无需手动干预。

Extman Autoupdates

为已应用的更新重启黄金提示条

应用更新时,会出现一个金色条通知,提示你重新启动 Visual Studio 以便让更改生效。

扩展页中的自动更新设置

我们已通过将自动更新设置直接集成到扩展页,让自动更新设置更易于访问,从而快速访问配置选项。

Extman Updatesettings

按待处理更改进行筛选

现在,一个新的待处理类别突出显示了待处理更改,让你随时了解需要注意的更新和修改。

Extman Pending

自动更新设置

除了扩展页,自动更新设置现在在 “工具→选项”下提供,从而提供更直观的设置管理体验。

Extman 选项

简化的设置体验

我们简化了设置 UI,使自动更新和其他相关首选项的配置更简单,单击次数更少,选项更清晰。

排除的扩展列表

Visual Studio 现在提供自动填充的排除扩展列表,可帮助你管理不应自动更新的扩展。 对于需要手动控制版本更新的关键任务扩展,这一点特别有用。

这些增强功能旨在提高可用性,减少更新摩擦,让你更好地控制开发环境,同时确保你从最新的改进中受益。

📣 查看功能票证以分享你的反馈并继续对话。

数据

SSDT 📣 中使用 SDK 样式的 SQL 项目

现在,可以使用 SQL Server Data Tools 项目中的 SDK 样式项目文件格式和增强的 SQL 调试和架构比较功能。

Visual Studio 17.14 中的更新为 SDK 风格的 SQL Server Data Tools(预览版)引入了新的项模板和 .dacpac 数据库引用。 SDK 样式的 SSDT SQL 项目基于 Microsoft.Build.Sql SDK,该 SDK 为 SQL Server Data Tools (SSDT) 项目提供了跨平台支持和改进的 CI/CD 功能。

通过减少冗长的项目文件和对 NuGet 包的数据库引用,团队可以在单个项目中更有效地在大型数据库上进行协作,或者从多个项目中编译多组对象。 Microsoft.Build.Sql 项目的数据库部署可以在 Windows 和 Linux 环境中自动化,通过使用 Microsoft.SqlPackage dotnet 工具发布 SQL 项目生成的工件 (.dacpac)。 详细了解 SDK 样式的 SQL 项目和适用于 SQL的 DevOps。

在 SDK 样式的 SQL Server Data Tools 中添加数据库引用

在 17.14 中,数据库引用已扩展到支持项目和 .dacpac 工件引用。 未来版本将支持将数据库引用作为包引用。 slngen 解决方案文件生成器的最新更新还增加了对 Microsoft.Build.Sql 项目的支持,从而能够以编程方式管理大型解决方案。

要在解决方案中使用 SDK 风格的 SQL 项目,请确保在 Visual Studio 安装程序中安装最新的 SSDT 预览版组件。

安装程序启用预览版 SSDT 功能

📣 查看功能票证以分享你的反馈并继续对话。

C++

CMake 模块的悬停工具提示

在“IntelliSense 快速信息和完成”中添加了对 CMake 模块的支持。

我们非常高兴地宣布,我们已在 Visual Studio 中为 CMake 模块添加了基于 IntelliSense 的完成和快速信息支持。 现在可以直接从 Visual Studio 编辑器中查看所有可用的 CMake 模块并了解更多相关信息,从而使开发过程更顺畅、更高效。

快速信息

在将鼠标悬停在引用的 CMake 模块上时,IntelliSense 会提供所选模块的详细信息,帮助你一目了然地了解其使用情况和功能。

CMake 信息在快速信息概览CMake information in the Quick InfoCMake information in the Quick Info中

补全

CMakeLists.txt 或其他 CMake 脚本文件中开始键入 CMake 模块时,IntelliSense 将提供可供选择的可用模块列表。

CMake 模块完成

C++动态调试

全面调试能力适用于优化过的C++代码,而不影响性能。

调试优化的代码现在比以往更容易。 通过激活 C++ 动态调试,可以像调试未优化代码一样调试优化代码。 可以查看所有本地变量,单步执行任何位置,并在优化后的二进制文件上设置全保真断点。 有关详细信息,请阅读我们的博客帖子

C++动态调试

填充模板 IntelliSense

模板 IntelliSense 现在使用“转到定义”(F12)自动填充模板参数。

现在,可以使用 “转到定义 ”或 “F12”在模板栏中自动填充模板参数,该参数显示并允许编辑模板参数。

例如,按 vector 上的 F12 现在将跳转到 vector 并自动填充模板栏,使开发人员能够快速检查和修改模板参数。

在下面的示例中,使用 “转到定义 ”或按 F12 将填充模板栏中的类型和分配器。

自动填充模板 IntelliSense

📣可配置的 Include 完成

通过配置 include 完成,可以控制 Include 完成列表中会显示哪些标头。

现在,可以在键入 #include 时控制在 Include 完成列表中显示哪些标头。

现在,“工具”→“选项”→“文本编辑器”→“C/C++”→“IntelliSense”→“Include 建议样式”中的下拉列表设置会同时影响 Include 建议和 Include 完成,并具有以下优化行为:

  • 核心准则(默认):对相对路径使用引号,对其他所有内容使用尖括号。
  • 引号模式:对除使用尖括号的标准标头以外的所有标头使用引号。
  • 尖括号模式:对作为包含路径一部分的所有标头使用尖括号。

包含建议设置的样式

以前,无论使用何种语法,所有标头(相对标头除外)都会出现在建议中。 通过此更新,可以优化使用 #include <> and #include "" 时标头建议的显示方式。

📣 查看功能票证以分享你的反馈并继续对话。

用户报告的热门错误修复

📣查看此版本中所有用户报告的“bug 修复”的完整列表。

重要

Domain-Specific 语言模型序列化已有重大更改。 对于包含自定义属性类型的模型,使用默认序列化机制的开发人员需要为这些自定义属性类型添加 TypeConverters。 有关如何执行此操作的示例,请参阅 自定义文件存储和 XML 序列化

版本 17.14.5

发布日期:2025 年 6 月 10

热门 bug 修复 来自社区
在命中断点之前,通过 SSH 远程调试器挂起 反馈单
已处理的安全咨询 CVE Descritpion
Visual Studio 远程代码执行漏洞 CVE-2025-47959 在 Visual Studio 中对命令(“命令注入”)中使用的特殊元素进行不当的中和化允许授权攻击者通过网络执行代码。
.NET 和 Visual Studio 远程代码执行漏洞 CVE-2025-30399 .NET 和 Visual Studio 中的不受信任的搜索路径允许未经授权的攻击者通过网络执行代码。

版本 17.14.4

发布日期:2025 年 6 月 3

热门 bug 修复 来自社区
在 Razor 的 PageModel 上找不到类型或命名空间错误 反馈单
VS 2022 17.14 p1.1 无法完成生成。 “错误 D8040:创建或与子进程通信时出错。 反馈单
#include 完成不再建议路径中的文件或文件夹 反馈单
Visual Studio 一直要求我重新输入凭据 [expansion.microsoft.com 租户被阻止] 反馈单

版本 17.14.3

发布日期:2025 年 5 月 28

热门 bug 修复 来自社区
使用 RFX_Date 存储 COleDateTime 时出现问题 反馈单
缺少 Android 启动选项 反馈单
当我在 Unity 中创建新脚本并再次打开 VS 进行编辑时,所有以前固定的选项卡都会消失。 反馈单
每次更改代码中的某些内容(Xamarin) 时,我必须重启 VS 反馈单
更改 git 分支会导致关闭打开的文件 反馈单
“快速作和重构 > 创建定义”在 17.14 更新(UE5) 中不起作用 反馈单

版本 17.14.2

发布时间:2025 年 5 月 22

热门 bug 修复 来自社区
修复了以下问题:如果通过 UNC 路径打开包含C++项目的解决方案,VS 将崩溃。 反馈单

版本 17.14.1

发布日期:2025 年 5 月 21

热门 bug 修复 来自社区
由于内部错误,功能“xxx”当前不可用。 System.NotSupportedException:不支持给定路径的格式。 反馈单
修复了为 Microsoft 应用商店创建上传包时发生的问题。 反馈单
修复了 Razor 源生成器导致其无法运行的问题 System.ArgumentOutOfRangeException
修复了在完成初始化之前关闭资源文件编辑器时发生的挂起的问题。

从整个团队中,感谢你选择 Visual Studio! 有关最新更新、资源和新闻,请查看 Visual Studio 中心 并保持联系。

祝你编码愉快!
Visual Studio 团队


注意

此更新可能包括单独许可的新 Microsoft 或第三方软件,如第三方通知或其随附许可证中所述。