Visual Studio 2022 发行说明

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

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

功能

最新版本中的所有新功能。

GitHub Copilot

Copilot 代理模式

Copilot 代理模式是 AI 辅助开发的下一个演变,并且已退出预览版。

它为使用 GitHub Copilot 进行开发开辟了全新路径,突破单次提示的局限,能够从头到尾完整处理整个任务。

要开始使用,请打开 Copilot Chat,单击“提问”按钮,然后切换到“智能体”

从想法到代码

智能体模式能够理解你的意图,制定计划,调用相关上下文,并采取行动。 它可以修复 bug、编辑文件并生成解决方案 — 所有操作均可通过单一命令行界面完成,直至目标达成。

通过 MCP 集成,智能体模式还可以从连接的系统(如 GitHub、CI 管道或监控仪表盘)中拉取丰富的上下文信息,从而采取更智能的行动。

尝试一下,看看它能带来什么改进!

代理模式

重要

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

立即免费激活 GitHub Copilot


Gemini 2.5 Pro 和 GPT-4.1

刚刚在 Visual Studio Chat 中删除了新模型。

更强大的性能、更快的速度和更高的灵活性 — 一切都在 IDE 中!

新模型

🚨 Gemini 2.5 Pro 现已集成到 Visual Studio 中

作为目前性能最优的模型之一,Gemini 2.5 Pro 现已支持在 Visual Studio 中使用。 它与 GPT-4.1、GPT-4o、Claude Sonnet 3.7、Claude Sonnet 3.5 和 o3 mini 一起,为 IDE 带来真正多功能的 AI 体验。

🚨GPT-4.1 现已成为默认模型

GPT-4.1 现已成为 Visual Studio 的默认模型,为用户带来更快、更敏捷且整体体验更加流畅的性能提升。


现在可以根据当前任务、代码和工作流程,选择最适合的模型。 试试看,然后告诉我们你的想法!

重要

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

立即免费激活 GitHub Copilot


MCP 服务器支持

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

Visual Studio 现在支持 MCP 服务器,实现更智能、更互联的 AI 开发。 MCP 是一个开放协议,用于规范应用程序和 AI 智能体如何共享上下文并采取行动。

使用 Visual Studio 中的 MCP,可以做的不仅仅是从 MCP 服务器检索信息,例如日志、测试失败、PR 或问题。 还可以使用该信息来驱动代码、IDE 甚至整个堆栈中的连接系统中的有意义的操作

MCP

设置 MCP 服务器

mcp.json 文件添加到解决方案中,Visual Studio 将自动检测它。 它还可以识别来自其他环境(如 .vscode/mcp.json)的配置。

使用 MCP 服务器

打开 Copilot Chat 面板中的“工具”下拉菜单以查看已连接的 MCP 服务器。 从那里,Copilot 可以结合上下文,使用现有的系统采取行动。

注意:需要处于智能体模式才能访问和与 MCP 服务器交互。


无需离开 Visual Studio 即可将堆栈的全部功能引入 Copilot!

重要

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

立即免费激活 GitHub Copilot


Copilot 输出窗口上下文

现在可以在 Copilot Chat 中将输出窗口引用为上下文。

我们知道输出窗口对于跟踪生成、调试和了解底层发生的情况至关重要。 现在,Copilot 可以读取该信息 — 因此可以提出问题、获得帮助并根据输出日志采取行动。

输出窗口

如何使用
  • 使用 #output 在聊天中直接引用它。
  • 单击聊天输入中的 ➕ 图标将其添加为上下文。
  • 直接询问 Copilot:检查输出日志并帮我修复这个错误。
  • 或在“输出窗口”中右键单击,然后选择“使用 Copilot 解释”立即附加它。

试试看,看看阅读和处理日志有多么轻松!

重要

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

立即免费激活 GitHub Copilot


查看 Copilot 使用情况

现在可以直接在 Visual Studio 中跟踪 Copilot 使用情况。

想知道你本月使用 Copilot 的次数吗? Visual Studio 现已内置一个 Copilot 使用情况面板,以便轻松追踪你的使用情况!

无论使用的是 Copilot 免费还是付费计划,均可直接在 IDE 中查看聊天请求数量和代码补全次数。

使用情况状态

单击 IDE 右上角的 Copilot 锁屏提醒 并选择 Copilot 消耗来访问它。

这将打开一个面板,显示本月当前的使用情况。

提示:如果使用的是高级模型,则还会在模型选择器中看到使用倍数,这样就能始终清楚自己正在使用什么。

重要

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

立即免费激活 GitHub Copilot


使用提示文件保存或共享提示

现在可以在存储库中创建可重用的提示文件,以便快速运行或共享常用提示。

编写有效的提示可能非常耗时,但充分利用 Copilot Ask 和代理模式是关键。 我们启用了可重用的提示文件,使你能够反复利用这些出色的提示。 可以从聊天窗口快速运行,也可以与团队共享。

如何编写提示文件
  1. 按照在提示框中通常采用的方式编写提示,并附加 # 引用,以从解决方案中添加特定信息,例如方法、类和文件。 甚至可以引用其他提示文件以包含常见基本指令。
  2. 然后,将其从提示框复制到 markdown 文件中,并将其保存在文件夹中存储库 .github/prompts 根目录中的 .prompt.md 文件扩展名

提示:你甚至可以获得 Copilot 帮助优化提示以更具体

将提示文件附加到提示

如何运行提示
  1. 开始键入 #prompt: 以直接在聊天中引用文件夹中 .github/prompts 的所有提示文件,或单击➕聊天输入中的图标将其添加为上下文。
  2. 在提示框中添加任何其他信息,或只是发送提示!

试一试,加快 AI 工作流的速度!

📣 此调查,以帮助使该功能变得更好。

重要

激活 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

Microsoft 365 代理工具包 - 6 月

Agents Toolkit 17.14 GA 6 月版本更新。

6 月版本包含了针对 17.14 GA 版本的多个修补复程序:

  • 启用自定义引擎代理在智能 Microsoft 365 Copilot 副驾驶® 中的启动和预览

我们的工具包中提供了一个名为“天气代理”的自定义引擎代理模板。 我们已更新此模板,使其可在智能 Microsoft 365 Copilot 副驾驶® 聊天中启动并预览。 要进行试用,只需在调试时选择 Copilot 启动配置文件即可。

  • 修复了在安装 Microsoft 365 Agents Playground 时,调试失败导致的错误提示框问题。 现在工具包将弹出清晰的提示信息和操作指南,指导如何解决该问题。

  • 模板升级应用清单依赖项升级至 v1.21

  • 我们新的品牌变化引入的模板 README 文件中的几个错误已得到修复。

  • 更新了扩展管理器中的工具包图标。

  • 修复了启动 Agents Playground 时所需的频道 ID 值仅允许 msteams 和模拟器的问题。 现在它允许其他值,如 Webchat。

增强的 NuGet 身份验证

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

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

NuGet 身份验证对话框

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

Microsoft 365 代理工具包

Teams 工具包 17.14 GA 更新。

我们很高兴地宣布,我们的产品(以前称为 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 工具现已在 .NET MAUI 的设计时提供。

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

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

实时预览演示

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

实时预览屏幕截图

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

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

新的 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.8

发布日期:2025 年 7 月 8

热门 bug 修复 来自社区
无法再生成 MAUI 项目的 net9.0-ios 目标 反馈单
设置 C# 或 VB.NET 项目的属性时,“启动对象”下拉列表将正确显示可从中选择的对象。 反馈单
用于调试的 Visual Studio 中未显示 Docker 容器。 反馈单
更新了 Visual Studio 安装程序,以包含 10.0.26100 Windows SDK(10.0.26100.4188)的最新服务版本。
已处理的安全咨询 CVE Descritpion
Visual Studio - 特权提升 CVE-2025-49739 标准收集器服务中对使用时间的检查时间允许本地特权升级
Gitk 参数漏洞 CVE-2025-27613 Gitk 参数漏洞
Gitk Abitryary 代码执行漏洞 CVE-2025-27614 Gitk Abitryary 代码执行漏洞
Git 恶意 Shell 漏洞 CVE-2025-46334 Git 恶意 Shell 漏洞
Git 文件覆盖漏洞 CVE-2025-46835 Git 文件覆盖漏洞
Git Symlink 漏洞 CVE-2025-48384 Git Symlink 漏洞
Git 协议注入漏洞 CVE-2025-48385 Git 协议注入漏洞
Git 凭据帮助程序漏洞 CVE-2025-48386 Git 凭据帮助程序漏洞

版本 17.14.7

发布日期:2025 年 6 月 23

热门 bug 修复 来自社区
GitHub Copilot 聊天错误:“无法分析 ov”- 持久问题 反馈单
修复了在编译器选项和路径之间用空格引用包含路径时出现的问题,路径中的文件都不会显示在包含完成列表中。 反馈单
17.14 版开发人员 PowerShell 中未检测到转义 反馈单
已更新到 VS 17.14 - NCrunch 5.10.0.7 中断 反馈单
无法在 VS2022 17.14.0 预览版 1.1 中生成 VB.NET 应用 反馈单
实现了多项更改,以提高内联完成的用户体验和辅助功能。

版本 17.14.6

发布日期:2025 年 6 月 17

热门 bug 修复 来自社区
VS 17.14 回归:具有 x64 发布配置的 ASAN 错误的 codegen 反馈单
清理器覆盖率生成错误的 Codegen 反馈单
修复了 Razor 格式有时似乎对特定语法模式或配置不执行任何作的问题。 反馈单
运行单元测试后,GitHub Copilot 代理预览版无法运行终端命令 反馈单
加载 EventTrigger 的路由事件时,Storyboard 无法按名称找到目标元素。 反馈单
修复了 boost::p arser 中的误报语法错误 反馈单
Copilot 无法看到.xaml.cs和 .xaml 之间的差异 反馈单
MSVC AddressSanitizer 现在支持将动态链接的通用 C 运行时与静态链接的 VCRuntime(通常用于插件等软件)的项目配合使用。 反馈单
修复了导致编译器崩溃的复杂特征检测代码的问题。 反馈单
Copilot 助手“run_build”失败 反馈单
修复了使用导航按钮编辑下一个编辑建议的菜单项时的崩溃。
修复了具有修改处理器相关性的多套接字计算机上的 ConcRT (并发运行时)初始化。

版本 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 或第三方软件,如第三方通知或其随附许可证中所述。