Visual Studio 徽标Visual Studio 2022(预览版)发行说明

我们很高兴地宣布 Visual Studio 2022 v17.13 的可用性。 此更新侧重于稳定性和安全性,并全面改进

功能

2024 年 11 月 12 日发布的 17.13 功能列表

工作效率

默认文件编码 📣

现在可以指定保存文件时 Visual Studio 应使用的默认编码。

在跨平台环境中工作的开发人员通常需要使用特定文件编码保存文件。 这些编码发生更改时,可能会导致各种问题。

Visual Studio 现在能够设置保存文件时将使用的默认文件编码。 这样,就可以设置所需的文件编码,Visual Studio 将随时使用该编码。

若要设置默认编码,请转到 “工具 > 选项 > 环境 > 文档”。 有一个标题为“ 保存文件”的选项,其编码如下。 如果未选中该选项,Visual Studio 将使用其默认行为来管理文件编码。 如果选中了此选项,则 Visual Studio 将在选项旁边的组合框中检查值,并在保存文件时尝试使用该文件编码。

Tools\Options 中的默认文件编码选项

如果 Visual Studio 无法使用指定的编码进行保存(例如,已在包含 Unicode 字符的文件上请求 了 ASCII 编码),则只要无法使用所请求的编码进行保存,Visual Studio 就会发布对话框。

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

水平滚动条重新映像

编辑器中的水平滚动条现在可以将自身移动到始终可用,即使空间很紧。

Visual Studio 中的编辑器托盘是大量信息的有用位置。 可以控制缩放、检查文档的运行状况、查看所打开的行和一堆附加信息。

遗憾的是,有时所有这些信息都可能会挤出水平滚动条,因此很难在窗口周围滚动。 这在系统托盘不很宽的并排视图中尤其如此。

有了最新的更新,这些斗争就过去了。 如果滚动条位于可用宽度下方,它将在系统托盘上方弹出,并确保它始终可用。 默认情况下,只要有足够的空间再次弹出,它就会弹出到编辑器托盘中。

显示在编辑器托盘上方的水平滚动条

虽然我们认为此行为对于大多数用户来说都是理想的,但如果遇到问题,可以在“工具选项”>控制该行为。 此选项位于“文本编辑器高级”下,并显示编辑器水平滚动条位置。> 如果希望滚动条根据可用空间调整其位置,请保留在编辑器托盘中或始终显示在编辑器托盘上方,这样就可以切换。

水平滚动条设置

换行缩进 📣

现在可以指定是否应缩进编辑器中换行的行。

现在,你能够控制是否缩进了换行行。

换行缩进

对于想要更改此选项的用户,可以在“工具>选项>文本编辑器>常规”中找到它。 该选项在换行时称为缩进包装行,默认启用。 如果希望换行不要缩进,可以取消选中此选项。

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

在代码搜索中导航到最近的文件 📣

在代码搜索中,现在可以在最近使用的文件之间轻松跳转。

我们正在简化代码库的导航。

现在,在没有查询的情况下打开 代码搜索 时,你将看到最近导航的文件的列表。 其中包括通过代码搜索打开的文件,以及解决方案中打开的任何其他文件。 这样可以轻松跳转回最近处理的文件,而无需记住或键入文件名。

没有查询时显示最近的文件

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

GitHub Copilot

从功能搜索中询问 Copilot

在功能搜索中,现在可以请求 Copilot 获取查询的详细响应。

曾经发现自己需要查找 Visual Studio 中的特定菜单项、命令或选项,但不知道其名称或位置? 是否受益于有关如何正确使用它的更多详细信息?

现在,在功能搜索,可以将查询发送到 GitHub Copilot Chat 以获取详细的响应。 如果不确定功能的特定术语,GitHub Copilot Chat 可以解释查询的语义含义,请考虑 Visual Studio 版本,并提供答案,而无需离开 IDE。

搜索栏下的“功能搜索询问 Copilot”按钮

例如,今天在功能搜索中搜索“美化”不会显示正确的设置“格式文档”。 但 GitHub Copilot Chat 可以识别和解释 Visual Studio 中的相关项。

如果在 Visual Studio 中设置了 GitHub Copilot 订阅,只需开始在功能搜索键入搜索,然后单击“询问 Copilot”按钮将其发送到聊天。

重要

若要使用此功能,请确保激活 GitHub Copilot


GitHub Copilot 快捷方式

GitHub Copilot Chat 中线程的新键盘快捷方式。

此更新为 GitHub Copilot 注册新的命令,并将其绑定到聊天窗口中的键盘快捷方式:

  • 新线程: Ctrl+N
  • 上一线程: Ctrl+PgDown
  • 下一个线程: Ctrl+PgUp
  • 展开和聚焦线程下拉列表:Ctrl+Shift T+

下一个/上一个线程将在传递第一项/最后一项时循环。

由于这些命令注册为 VS 命令,因此用户可以在 Keybinding 对话框中自定义它们。

注意:仅当活动焦点位于 GitHub Copilot 聊天窗格中时,这些快捷方式才有效。 如果要在其他位置工作,这些快捷方式可能具有不同的功能。

重要

若要使用此功能,请确保激活 GitHub Copilot


自然语言扩展

通过扩展到自然语言来增强斜杠命令体验。

用户现在可以享受增强的斜杠命令体验 - 斜杠命令现在在用户键入时扩展到其自然语言对应项,包括拉取他们将使用的任何活动上下文并在用户发送之前在用户的提示中显示该命令。

这为用户提供了

  1. 更好地了解发送提示后会发生什么情况
  2. 了解命令可以使用的上下文
  3. 在发送提示之前,能够对提示进行修改。

斜杠命令扩展图片

斜杠命令展开后:

斜杠命令扩展图片 2

重要

若要使用此功能,请确保激活 GitHub Copilot


并行堆栈中的线程摘要

使用并行堆栈中的 AI 线程摘要增强调试过程。

借助 GitHub Copilot 的“并行堆栈自动汇总”,你可以一目了然地获得明确的线程说明,以便更轻松地跟踪问题和了解复杂程序中的线程行为。

自动汇总并行堆栈

如果在 Visual Studio 中使用 GitHub Copilot,在启动并行堆栈窗口时,会注意到每个线程顶部新的 AI 生成的摘要行。

此摘要提供线程当前活动的快速可读概述。

重要

若要使用此功能,请确保激活 GitHub Copilot


调试和诊断

本机代码的目标检测

探查器的检测工具现在支持本机代码的目标检测。

Visual Studio Profiler 的检测工具针对本机代码提供有针对性的检测,允许你选择特定的类和函数进行详细分析。

此功能可增强性能监视,并帮助更有效地查明问题,简化调试过程。

本机入侵工具

此精度允许更深入地了解性能瓶颈并加速分析工作。

着色 IEnumerable 可视化工具

增强的可编辑表达式,并突出显示语法。

编写 LINQ 表达式可能会变得棘手,尤其是在它们变得复杂时。 Visual Studio 2022 现在在 IEnumerable 可视化工具可编辑表达式引入了语法突出显示

语法突出显示将不同的颜色应用于查询的特定部分,例如类、枚举、委托、结构和关键字。 这样可以轻松地在 LINQ 表达式中发现各种组件,并一目了然地查看逻辑流,从而更清晰、更易于维护的代码。

IEnumerable 可视化工具语法突出显示

自定义语法突出显示

Visual Studio 允许自定义配色方案以满足你的偏好。 若要个性化颜色,请执行以下设置:

  1. 转到 工具 > 选项 > 环境 > 字体和颜色
  2. 从“显示设置”下拉列表中选择“文本编辑器”。
  3. 调整每个用户 类型 项的颜色以匹配编码样式。

Git 工具

在拉取请求中添加注释📣

现在,可以通过向签出分支上的拉取请求文件添加新注释来查看 Visual Studio 中的拉取请求。

使用最新更新,现在可以向签出分支上的拉取请求文件添加新注释。 这是对拉取请求体验的最高要求,是 Visual Studio 中拉取请求体验的一系列改进中的最新一项。

开始使用

启用功能标志、拉取请求注释和拉取请求添加批注、签出具有活动拉取请求的任何分支,然后单击“在 InfoBar 中的文件中显示批注”。 这将激活编辑器中的拉取请求批注体验。

查看拉取请求注释通知

若要向文件添加新批注,请单击边距中的“添加批注”图标,或右键单击要添加批注的行,然后从上下文菜单中选择“Git > 添加批注”。

添加拉取请求注释图标

注意:该图标仅显示在属于拉取请求的文件中,对于 GitHub 拉取请求,只能对周围行进行注释,包括已更改的行。

📣查看功能票证以分享你的反馈并继续对话。参与这项调查,以帮助完善此功能。

注意

必须在“工具 -> 管理预览功能”下启用此功能


IDE

跨主题更改保留字体 📣

更改主题现在将记住字体和字体大小首选项。

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

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

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

默认情况下,将为所有用户启用此功能。 如果你更喜欢以前的行为,请转到工具 > 管理预览功能,找到将字体设置与颜色主题选择分开选项。 如果选中此选项,则无论主题如何更改,你的字体首选项都将保持不变。 取消选中该框,以恢复将字体选择与主题绑定的上一行为。

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

注意

必须在“工具 -> 管理预览功能”下启用此功能


GitHub 帐户载入

从第一个启动向导或 Visual Studio shell 添加 GitHub 帐户。

是否需要使用 GitHub 资源? 现在,添加 GitHub 帐户比以往更容易!

使用 GitHub 帐户登录的新方法

现在,可以在首次启动配置对话框期间使用 GitHub 帐户登录:

从 VS 首次启动对话框进行 GitHub 登录

如果决定跳过首次启动帐户设置,也可以直接从 VS shell 登录,而无需先添加 Microsoft 帐户。

从 VS shell 进行 GitHub 登录

请注意,在向 Visual Studio 添加Microsoft(工作或学校或个人)帐户之前,将无法同步设置。

多个 GitHub 帐户 📣

现在可以添加多个 GitHub 帐户并设置活动帐户,以驱动 GitHub Copilot 和版本控制等 GitHub 功能。

是否需要对开发方案设置使用不同的 GitHub 帐户? Visual Studio 现在允许同时拥有多个 GitHub 帐户!

添加多个 GitHub 帐户

添加多个帐户非常简单! 只需打开个人资料卡,单击“添加其他帐户”,登录到 GitHub 帐户,并按需要重复操作。

具有多个 GitHub 帐户的个人资料卡

还可以从“文件>帐户设置”下的“帐户设置”对话框中添加帐户...

设置 GitHub 活动帐户

如果添加多个 GitHub 帐户,Visual Studio 将GitHub 感知功能(如版本控制和 GitHub Copilot)默认为标记为活动的帐户。

若要切换活动帐户,只需访问帐户选项并单击“设置为活动帐户”按钮。

设置 GitHub 活动帐户

对 GitHub Copilot 的影响

当活动 GitHub 帐户订阅 GitHub Copilot 个人版或 GitHub Copilot 企业版时,GitHub Copilot 会自动激活。

对版本控制的影响

处理 GitHub 拉取请求或问题时,会收到设置 GitHub 帐户的提示。 每当处理特定存储库时,我们都会记住你的首选项,因此,更改存储库时,无需担心为常规 Git 操作(如推送、拉取和提取)切换帐户。 如果存在不匹配的情况,则还会提示你更新活动帐户,以避免使用错误的帐户。

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

添加新 Markdown 文件 📣

使用“添加新项”对话框中提供的新模板,添加新的 markdown 文件变得更加容易。

向项目添加新项时,现在可以选择 Markdown 文件 模板创建新的 Markdown 文件。 此模板提供 Markdown 内容的起点。

Markdown 模板

若要向项目添加新 Markdown 文件,请执行以下步骤:

  1. 在解决方案资源管理器中,右键单击要在其中添加 markdown 文件的项目或文件夹。
  2. 选择“添加”>“新项”。
  3. “添加新项 ”对话框中,选择 Markdown 文件
  4. 输入文件的名称,然后单击“ 添加”。

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

.NET Aspire 和 Azure Functions

现在,Azure Functions 可以使用 .NET Aspire 将无服务器技术集成到 .NET Aspire 中。

借助此版本的 Visual Studio,Azure Functions 开发人员可以在创建新的 Azure Functions 项目时登记 .NET Aspire 业务流程。 此复选框的结果是在创建 Functions 项目时,在解决方案中包含应用主机和服务默认值项目。

在新函数创建时添加 .NET Aspire

但是,如果已有一个要与之集成的 Azure Functions 项目(例如 ASP.NET Core Blazor 前端 Web 应用),则可以将 .NET Aspire 支持添加到现有的 Azure Functions 项目,就像在此版本之前可以使用 ASP.NET Core 应用一样。

将 .NET Aspire 业务流程添加到现有 Functions 项目

最后,使用 .NET Aspire 支持运行或调试 Azure Functions 项目将在浏览器中启动 .NET Aspire 仪表板,以便实时监视 Azure Functions 的执行。 可以看到 .NET Aspire 业务流程协调程序如何管理 Azure Functions 的执行,甚至可以从仪表板暂停和恢复 Azure Functions 的执行。

在 .NET Aspire 仪表板中运行 Azure Functions

我们对此集成感到兴奋,并期待了解如何将 Azure Functions 集成到 .NET Aspire 项目中。

Docker 启动配置 📣

使用 DependencyAwareStart 启动配置选项启用depends_on支持。

我们引入了一个新的启动配置选项,该选项称为 DependencyAwareStart “设置为 true”时,更改 Docker Compose 项目的启动方式,并在 depends_on Compose 配置中使用。

Docker 依赖于

此功能可确保按正确的顺序启动指定的容器,并遵循 Docker Compose 文件中定义的依赖项要求。 此外,它通过更有效地管理依赖项来增强多容器应用程序的可靠性和可靠性。

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

Docker Compose 缩放 📣

compose 中的 scale 属性现在受到尊重。

现在,可以添加到 scale Compose 服务配置,以使用运行的特定副本数进行调试。 例如,以下配置将在启动时运行服务的两个实例 webapi

Docker 缩放

此增强功能通过模拟类似生产的环境,可以更有效地对应用程序进行负载测试和调试。 它还简化了工作流,使直接从 Compose 文件管理多个实例更加轻松。

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

Web

将 HTML 提取到 Razor 组件 📣

现在可以通过代码操作将 HTML 提取到 Visual Studio 中的 Razor 组件。

你是否发现自己向 .razor 文件添加太多代码,并希望通过一种简单的方法将其移动到自己的可重用组件? 在 Razor 文件中使用 HTML 时,现在可以使用 Ctrl+。或者右键单击并选择“快速操作”和“重构,以自动将所选 HTML 标记提取到 Visual Studio 中的新 Razor 组件!

在此第一次迭代中, “提取到组件 ”仅支持 HTML 标记选择。

要提取到新 Razor 组件的 HTML 标记示例

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

禁用 Razor 粘贴时的格式 📣

现在可以在 VS 设置中为 Razor 文件禁用“粘贴格式”功能。

是否发现 Razor 文件中的 “粘贴 格式”功能比帮助更阻碍? 现在可以在 Razor 文件中粘贴代码时禁用自动格式设置。

导航到 “工具 > 选项 > 文本编辑器 > Razor > 高级 ”并取消选中 “粘贴格式”来禁用设置。

禁用 Razor 粘贴时的格式

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

用户报告的热门错误修复

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


团队全体成员感谢你选择 Visual Studio。 如果你有任何疑问,请通过 Twitter开发者社区联系我们。

祝你编码愉快!
Visual Studio 团队


注意

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