Visual Studio 2022 预览版发行说明
我们很高兴地宣布 Visual Studio 2022 v17.14 的可用性。 此更新侧重于 稳定性 和 安全,以及为所有开发人员提供的 AI 的改进。
下载 Visual Studio 2022 v17.14 预览版,以享受这些新功能和改进。
功能
最新预览版中的所有新功能。
GitHub Copilot(GitHub 自动助手)
GPT-4o 代码完成模型
在公共预览版中引入 GPT-4o Copilot 代码补全模型以获得更高质量的补全。
我们很高兴地宣布,新的 GPT-4o Copilot 代码完成模型现已在 Visual Studio 17.14 中为 GitHub Copilot 用户提供! 这种基于 GPT-4o mini 的高级模型经过了 275,000 多个优质公共存储库的进一步训练,涉及 30 多种常用编程语言。 因此,开发人员可以期待更准确的建议和增强的性能。
若要体验新模型,请导航到 工具→选项→ GitHub → Copilot → Copilot 补全,并从模型选择器下拉列表中选择 GPT-4o Copilot。 还可以通过单击右上角的 GitHub Copilot 徽章并转到“设置”→选项来访问设置。 请注意,首次检索最新模型列表时可能存在延迟。 如果在下拉列表中看不到新模型,请尝试重启 Visual Studio。
GPT-4o Copilot 访问说明:
- Copilot Pro 用户:新模型现可用于 17.14 及更高版本。
- Copilot Business 或 Enterprise 用户:管理员需要先在 github.com 的 Copilot 策略设置中选择加入编辑器预览功能,为组织启用此模型。
- Copilot 免费用户:使用此模型将计入每月 2,000 个免费补全。
AI 文档注释生成
自动生成C++和 C# 函数的文档注释。
Copilot 现已无缝集成到 Visual Studio 的代码编辑器中,以帮助你生成函数的文档注释。
为项目启用自动文档注释生成后,只需根据设置配置(例如
///
)键入注释模式,Copilot 将根据函数的内容自动完成函数说明。
此功能适用于C++和 C# 项目文件。
调试和诊断
适用于 .NET MAUI 应用的新调试器
集成到 Visual Studio Core 调试器中的 .NET MAUI 的新 Mono 调试引擎。
适用于 .NET MAUI 应用的新 Mono 调试器是集成到 Visual Studio 调试器中的新调试引擎,它在可靠性、性能和与 Visual Studio 其他部分的功能奇偶一致性方面带来了重要改进。
仅我的代码、变量和表达式计算是最明显的改进之一。
若要使用它,请确保已启用以下 Visual Studio 预览功能:为 MAUI 应用启用新的 .NET Mono 调试器
此功能仅适用于 Android 平台。 iOS 支持即将推出。
显示 LINQ 表达式 📣
的数据提示带子句悬停数据提示的增强 LINQ 表达式调试体验。
生成和排查 LINQ 查询问题可能是一个繁琐而复杂的过程,通常需要精确的语法知识和无数次迭代。 为了减轻这些挑战,Visual Studio 2022 现在在其调试器中设置了 LINQ 悬停数据提示功能。
当在调试过程中处于中断状态时,可以将鼠标悬停在 LINQ 查询的单个子句或段上,并在运行时计算即时查询值。
此外,还可以单击数据提示末尾的 GitHub Copilot 图标,这会对你悬停在其上的特定查询子句执行“使用 Copilot 分析”。 然后,Copilot 解释子句的语法,并阐明了获得指定结果的原因。
这可以显著提高效率,使调试体验更流畅、更轻松,帮助你更快地查明与 LINQ 查询相关的问题,并简化整个开发工作流。
📣查看功能请求以分享您的反馈并继续讨论。
零长度数组分配见解
.NET 分配工具现在标识零长度的数组分配,帮助优化内存使用率和性能。
.NET 分配工具现在提供对零长度数组分配的详细见解,帮助你识别和优化不必要的内存使用情况。 虽然这些分配看起来微不足道,但它们会累积并影响性能,特别是在高性能或内存受限的应用程序中。
通过此更新,可以通过单击“调查”链接来调查零长度的数组分配,这将打开“分配”视图,显示分配详细信息。 双击可以显示这些分配发生的代码路径,从而实现精确的优化。 为了提高效率,请考虑使用
Array.Empty<T>()
(静态分配的空数组实例)来消除冗余的内存分配。
Git 工具
查看传出/传入提交 📣
“Git 存储库”窗口现在在工具栏上增加了一个筛选器,用于仅显示传出/传入提交。
“Git 存储库”窗口是了解 Git 历史记录的首选位置。 在本地分支上工作时,你会发现它可能会与远程分支不同步,因为你创建了新提交(传出)或有新的可供拉取的提交(传入)。
借助工具栏中可用的新的传出/传入筛选器,您可以立即发现未同步的提交实例。 你的提交,他们的提交 - 轻松扫描它们并保持完美同步!
📣查看功能票证以分享你的反馈并继续对话。
还原 Git 存储库窗口 📣
使用此新设置在重启之间保持打开的 Git 存储库窗口。
作为分支作的专用环境,Git 存储库窗口 可能是日常开发的核心。 如果你发现自己经常在每个 Visual Studio 会话中重新打开它,此更新旨在节省时间和精力。
我们添加了一个新设置,用于 Git > 设置,以便在重启 Visual Studio 时自动还原 Git 存储库窗口。 此外,窗口将包含在保存的窗口布局中,从而增强自定义选项。
默认情况下,该功能是关闭的,目的是确保不需要的人不受影响。 但是,如果你喜欢方便,此设置非常适合你。
📣查看功能票证以分享你的反馈并继续对话。
默认分支名称 📣
允许用户在创建新的 git 存储库时自定义初始默认分支。
现在可以直接通过 Visual Studio 为新的 Git 存储库设置默认分支名称。 此新设置与 Git 配置无缝通信,以便更轻松地自定义工作流。
使用主分支创建新存储库后,
只需进入 Git > 设置,下次创建存储库时,即可在操作中看到自定义分支名称。
📣查看功能请求以分享您的反馈并继续交流。
IDE
增强的 NuGet 身份验证
NuGet 现在在要求你提供凭据时提供上下文。
我们改进了 NuGet 身份验证过程。 现在,如果我们检测到任何潜在的身份验证问题,你将看到一个新的身份验证对话框,为你提供有关该信息源和特定帐户需求的详细背景。
此更新增强了多重身份验证 (MFA) 方案的重新身份验证过程,解决了连续身份验证提示的问题,并确保在管理专用 NuGet 源时获得更流畅的整体体验。
Teams 工具包更新
Teams 工具包添加了用于生成代理的新项目模板。
我们很高兴地宣布,在此版本中,Teams 工具包添加了用于为 Microsoft Copilot 生成声明性代理的项目模板。
可以创建带有或不带有操作的声明性代理。 可以选择定义新 API 或利用现有 API 来定义执行任务或检索数据的操作。
使用 Teams 工具包在 Microsoft Copilot 中调试和预览声明性代理。
更重要的是,在此版本中,Teams 工具包刷新了所有项目模板以支持 .NET 9。
祝你编码愉快!
Teams 工具包团队
跨主题保留字体首选项 📣
更改主题现在将保留字体和字号首选项。
我们理解,开发人员在编码时选择的字体是个人选择,受可读性、辅助功能或美学偏好的影响。 Visual Studio 主题主要侧重于演示颜色,与你的首选字体无关。
通过此更新,我们引入了在切换主题时保留字体和大小选项的功能。 现在,你可以在 Visual Studio 中设置一次字体首选项,并切换主题,而无需每次重新配置字体设置。 请注意,字体的颜色仍然与主题相关联,因为这是主题的目的,但你的字体选择将被保留。
默认情况下,将为所有用户启用此功能。 如果你更喜欢以前的行为,请转到 工具→管理预览功能 并找到 将字体设置与颜色主题选择分开的选项。 如果选中此选项,则无论主题如何更改,你的字体首选项都将保持不变。 取消选中该框,以恢复将字体选择与主题绑定的上一行为。
📣查看功能请求以分享你的反馈并继续交流。
桌面
在设计时更新 UI 📣
实时预览、热重载和其他 UI 工具现在可在设计时使用。
现在可以在设计时使用实时预览,允许实时可视化应用 UI 中的更改。 热重载和其他实时 UI 工具现在也能以此方式使用,从而确保工作流程的无缝衔接。
从调试器分离后,可以灵活地使用这些工具,从而可以不间断地进行试验和优化设计。
单击新的实时预览指示器,在设计时从任何 XAML 文件访问实时预览:
无论你是在开发新的 .NET MAUI 应用还是优化现有的 WPF 应用,这些增强功能都有助于更快、更自信地交付高质量的应用程序。
📣请查看功能需求单以分享你的反馈并继续讨论。
新的 UWP .NET 9 MSTest 项目模板 📣
Visual Studio 现在包括面向 .NET 9 和本机 AOT 的更新的 UWP MSTest 项目模板。
Visual Studio 现在包括面向 .NET 9 和本机 AOT 的新 UWP MSTest 项目模板。 我们与 MSTest 团队密切合作,将 UWP .NET 9 项目的所有必要支持添加到 MSTest 库和基础结构,以及 Visual Studio 测试主机。 现在,UWP 测试项目能够面向 .NET 9 并利用所有新式 .NET SDK 和 MSTest 工具,同时仍按预期在 UWP 上下文中运行。
与使用 .NET Native 的所有其他原始 UWP 项目模板一样,以前的 UWP MSTest 项目模板将继续可用。 但是,建议今后使用面向 .NET 9 和 Native AOT 的新项目模板。 就像我们在 Visual Studio 17.13 中所做的那样,我们进一步调整了所有 UWP 模板的顺序以反映这一点,并在搜索结果中优先考虑新的 .NET 9 项目模板。
📣查看功能需求单以分享你的反馈并继续讨论。
可扩展性
安装扩展包
安装程序现在可以处理扩展包的安装。
安装程序现在支持扩展包,这些扩展包是多个扩展的捆绑包,所有这些扩展都是从单个扩展引用的。
若要在安装程序中使用扩展包,请先在 .vsconfig 文件中指定所需的扩展。 然后,使用 Visual Studio 安装程序的导入配置功能导入包含扩展详细信息的 .vsconfig 文件。
有关创建或生成 .vsconfig 文件的详细信息,请参阅 安装配置文档。
导入 .vsconfig 文件后,将定向到修改屏幕,其中扩展将在安装摘要窗格中的自己的标题下分组。 在这里,可以选择或取消选择整个扩展包或任何包中的单个扩展。
通过 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,它为 SQL Server Data Tools (SSDT) 项目带来了跨平台支持和改进的 CI/CD 功能。
通过减少项目文件的冗长和对 NuGet 包的数据库引用,团队可以更有效地协作处理单个项目中的大型数据库,或者在多个项目中编译多个对象集。 Microsoft.Build.Sql 项目中的数据库部署可以在 Windows 和 Linux 环境中自动执行,其中 Microsoft.SqlPackage dotnet 工具从 SQL 项目中发布生成工件(.dacpac)。 详细了解 SDK 样式的 SQL 项目和适用于 SQL的 DevOps。
中添加数据库引用
在 17.14中 ,扩展了数据库引用以支持项目和 .dacpac 工件引用。 在未来的版本中,将支持数据库引用作为包引用。 slngen 解决方案文件生成器的最新版本还添加了对 Microsoft.Build.Sql 项目的支持,从而能够以编程方式管理大型解决方案。
请确保在 Visual Studio 安装程序中安装最新的 SSDT 预览组件,以在解决方案中使用 SDK 样式的 SQL 项目。
📣查看功能票证以分享你的反馈并继续对话。
C++
CMake 模块的快速信息支持
在“IntelliSense 快速信息和完成”中添加了对 CMake 模块的支持。
我们为 Visual Studio 中的 CMake 模块添加了对基于 IntelliSense 的代码补全和快速提示的支持。 现在,可以直接从 Visual Studio 编辑器查看所有可用的 CMake 模块并了解详细信息。
快速信息
将鼠标悬停在引用的 CMake 模块上时,IntelliSense 可以提供有关所选模块的详细信息。 CMake 信息在快速信息概览
CMake information in the Quick Info中
补全
在
CMakeLists.txt
或其他 CMake 脚本文件中开始键入 CMake 模块时,IntelliSense 将提供可供选择的可用模块列表。
![]()
用户报告的常见 bug 修复
- C++ CLR 类库 (.NET) 项目中出现 String::Format 错误
- 误报生存期代码分析警告 C26847:不要返回无效指针
- 17.12.0 中的回归:使用 /CLR 进行编译时,替换失败是错误 C3699
- 清理器覆盖生成错误的 Codegen
- 在具有虚拟继承的层次结构中的 Lambda 表达式的编译错误
- 安装程序因 PowerShell 脚本执行错误而无法更新到 17.12.0
- 更改解决方案时出现解决方案资源管理器异常
📣 请查看此版本中所有用户报告的 bug 修复的完整列表。
重要
特定于域的语言模型序列化进行了重大更改。 为包含自定义属性类型的模型使用默认序列化机制的开发人员将需要为这些自定义属性类型添加 TypeConverters。 有关如何执行此操作的示例,请参阅自定义文件存储和 XML 序列化。
从整个团队中,感谢你选择 Visual Studio! 有关最新更新、资源和新闻,请查看 Visual Studio Hub 并保持联系。
祝你编码愉快!
Visual Studio 团队
说明
此更新可能包括单独许可的新 Microsoft 或第三方软件,如第三方通知或其随附许可证中所述。