修复了在 razor 文件中的标记帮助程序中使用 @ 可能会导致不当的编译错误的问题。
在升级后,Visual Studio 由于过时的 GitHub Copilot 扩展而启动循环
找不到 SDK“Microsoft.VCLibs.Desktop,版本=14.0”
VS 17.10.0 预览版 3.0 和 MFC 用户 dll + CLR -> 链接器错误
使用工具链 14.39.33523 时,意外的 vblendps 替代了 vinsertps
构建适用于 x64 的最新 clang 时 cl.exe 崩溃
VS2022 17.10.0 预览版 4 测试控制器或代理错误:填充无效且无法移除
发布日期:2024 年 5 月 21 日
此版本中新增功能摘要
Visual Studio 中的 GitHub Copilot
GitHub Copilot:AI 支持的编码助手已无缝融入 Visual Studio IDE,可增强日常任务,并带来最新的 AI 驱动的编码体验。 Copilot 旨在通过提供以下功能提升效率:
个性化代码建议
制作 git 提交消息
解答与编码相关的查询
我们在 Visual Studio 17.10 中引入了新的统一 Copilot 体验。 它将 Copilot 和 Copilot 聊天的功能合并为一个包,从而无需安装两个单独的扩展,十分方便易用。 享受更深入的集成 AI 体验! 立即
通过登录到 GitHub 或启动免费试用版
来激活 GitHub Copilot 订阅,以获取最新的 AI 体验。
注意:Copilot 现在位于 Visual Studio 界面的右上角。
使用生成的拉取请求说明改进代码评审
与生成的
Git 提交消息功能
类似,你现在可以获得由 GitHub Copilot 创建的拉取请求描述的草稿。 你将获得帮助,以便向同事提供重要的上下文以供他们进行审阅,并仔细检查你是否在拉取请求中加入了正确的更改。
需要验证是否已安装有效的 GitHub Copilot 订阅和 GitHub Copilot 聊天扩展。 通过单击“创建拉取请求”窗口中的“添加 AI 生成的拉取请求描述”闪光笔图标来试用。 请在
此处
分享有关此功能的反馈。
我们听取了你的反馈,将缩短所生成的 Git Commit 功能的输出。 在
开发者社区中的票证
上分享有关此更改的反馈。
使用 GitHub Copilot 了解提交历史记录
翻阅 Git 历史记录可能会令人望而生畏,但这通常是了解代码库或帮助识别错误起源的最佳方式。 我们在“提交详细信息”窗口中添加了 GitHub Copilot 支持的解释功能,以便更轻松地理解每个提交的内容。
需要安装有效的 GitHub Copilot 订阅和 GitHub Copilot 聊天扩展。 双击任意提交以在 Git 存储库窗口中打开“提交详细信息”窗格。 然后,单击“说明提交”闪光笔图标,以获取与代码并排显示的更改摘要。 我们计划继续改进此功能,因此请在
此处
分享你的反馈。
使用 .NET Aspire 构建云原生应用
.NET Aspire
是有主见的云就绪堆栈,用于生成可观察的、生产就绪的分散式应用程序。 .NET Aspire 通过处理特定云原生问题的 NuGet 包集合提供。 无论是使用 PostgreSQL 和 Redis 等容器化资源构建分布式云原生应用程序,还是使用存储或服务总线等 Azure 组件进行构建,.NET Aspire 都将简化开发体验并让你能够更深入地了解你的分散式应用,其功能如下:
无需配置解决方案即可进行多项目启动和调试
使用一组
有主见的扩展和默认值
提供对 HTTP 复原能力、运行状况检查和 OpenTelemetry 的内置支持
使用新的
.NET Aspire 仪表板
启动体验在浏览器中方便地查看容器化资源
和
.NET 项目的日志、指标和分布式跟踪
在
Azure Developer CLI (AZD)
之上构建的新部署方法,因此在大多数情况下,你将拥有多节点部署功能,无需编写自己的基础结构代码
调试和诊断
Copilot 生成的断点条件
将 AI 生成的建议用于条件断点和跟踪点,以提高调试速度。 Copilot 对代码进行分析,以建议针对断点定制的智能表达式,使调试更加顺畅。
设置条件断点或跟踪点并将鼠标悬停在设置窗口中的条件区域上时,Copilot 会根据代码快速呈现 AI 生成的表达式想法。 选择最适合需求的条件,轻松放置断点或跟踪点。
支持新 UpDown 和 ObservableCounter 检测的 .NET 计数器探查器可视化
Visual Studio 中的 .NET 计数器探查器现在引入了对两种创新指标的支持:UpDown,可以实时跟踪增量和减量更改的值;ObservableCounter,可以自主管理聚合总数,提供可自定义的回调委托以进行精确控制。
在提供的屏幕截图中,“total-hats”展示了一个 UpDown 计数器,而“orders-pending”展示了一个 ObservableCounter。
此外,我们还实现了筛选器浮出控件功能,使你能够根据标签方便地筛选数据点。 这会根据应用的组合动态调整摘要视图和泳道视图。
这一增强功能显著提高了灵活性,简化了对项目中动态值的监视。
例如,在 Web 应用程序开发中,UpDown 计数器可以监视页面视图等用户交互,而 Observable 计数器则通过有效管理活动会话总数来优化服务器资源。
托管内存窗口中的 GC 见解
托管内存窗口“见解”选项卡现在支持 GC Insights。 此功能通过揭示触发垃圾回收 (GC) 的实例,让你更深入地了解应用程序的性能。
这些实例可能会阻碍进程的效率,因此通常被视作不良实例,原因在于它们涉及手动干预,而不是允许垃圾回收器自主管理内存分配。
此外,GC Insights 还提供了通过时间估计来分析这些事件的功能,使腻能够更好地理解触发 GC 对应用程序执行时间线的影响。
从表达式创建条件断点和跟踪点
这项更新使用新的菜单选项(“插入条件断点”和“插入跟踪点”)简化调试。现在可使用自动窗口、局部变量、监视窗口或数据提示中共的属性或字段名称和值轻松创建断点。 这可简化工作流调试,尤其是对于复杂的表达式。
新的“热路径到根”功能通过查找最有可能的根路径来计算对象的总大小,从而改进内存分析。 它使用快捷方式将堆图转换为树,例如优先考虑最短路径和避免循环实际根的路径。
此功能是内存调查的一个很好的起点,在内存使用工具参考图中称为“热路径到根”。 你将在下面的树中看到带有红色图标的热路径。
“附加到进程”对话框改进
Visual Studio 中的“附加到进程”对话框得到了很大的改进,可提供更好的功能和用户友好性。 这些更新包括与 Visual Studio 主题的无缝集成、更节省空间且显示连接信息工具提示的视图,以及将“本地”连接设置为默认值来加快访问速度。 现在可轻松地在树视图和列表视图之间切换,使用可折叠部分更好地组织流程,并使用简化的组合框选择代码类型。
此外,“选择/跟踪窗口”功能现在更易于使用,支持双向跟踪,选择进程会突出显示其窗口,而单击窗口可选择其进程。
EXE 的目标检测
性能探查器的检测工具现在支持对任何可执行文件 (exe) 进行目标分析。 选择 exe 文件后,会显示一个目标检测对话框,类似于启动项目分析。 通过此增强功能,可集中分析特定可执行文件的性能指标。
此外,还可使用“添加项”按钮添加额外的动态链接库 (DLL),从而扩大分析范围,增强应用程序性能检查。
在生成 ASP.NET Core Blazor 项目时,在某些情况下,在开始调试时可能会遇到重大延迟。 在此版本中,我们进行了更改,应该可以防止出现这种延迟。 如果无法升级到 17.10 或更高版本,
开发者社区网站上列出了版本 17.9 的解决方法
。
取消解决方案加载
如果要在加载所有项目之前停止解决方案加载过程, 现在可以取消该操作并返回到空环境 IDE。
Teams 工具包现在包括一个新的项目文件 (.ttkproj),用于组织管理 Teams 应用的所有文件。 创建新的 Microsoft Teams 应用项目将会创建一个含有两个项目的解决方案,你将看到一个 TeamsApp 项目,其中包含 Teams 工具包功能的应用部件清单 (manifest) 和其他文件,还会看到另一个 C# 项目,其中包含用于实现对话机器人、Tab 等应用功能的示例代码。
你还会找到以下更改:
现在可以在 TeamsApp 项目上发现 Teams 工具包项目菜单
支持预览功能 > 启用多项目启动配置文件,在 Teams、Outlook 和 Teams 应用支持的其他平台中启动调试更加简单
新的 WinUI 工作负载和模板改进
WinUI 入门比以往更加容易了
新的 Windows 应用程序开发工作负载现在可供开发者直接开始使用 .NET 编写时尚、现代和快速的 WinUI 应用。 单击一下即可安装。
若要使用 C++ 编写 WinUI 应用,可以选择此工作负载下的可选组件。
使用更好的模板选择和新单元测试模板更快地深入了解 WinUI
WinUI 模板已在新项目模板选择列表中获得了全新的图标和优先级提升,使它们更易于访问。 常用的 C# 和 C++ 空白应用程序模板位于顶部附近,你无需搜索或滚动即可跳入代码。 我们还为 WinUI 添加了社区要求的全新单元测试模板,以帮助你更轻松地测试应用!
现在可以使用 Visual Studio 2022 版本 17.10 安装程序,将已安装的实例范围 Azure 市场扩展导出到 *.vsconfig 文件中。 这一新的导出功能,是对我们在 17.9 中推出的 Visual Studio 安装程序
加载在 *.vsconfig 文件中指定的扩展
的功能的补充。 如果对此体验有任何反馈或建议,请在
开发者社区
中告知我们。
有关
使用 *.vsconfig 文件
的详细信息,请参阅联机文档。
Razor 文件中 C# 代码的嵌入提示
现在可以在 Razor(.razor、.cshtml)文件中启用 C# 代码的嵌入提示。 嵌入提示显示与代码内联的文字和对象实例化的参数名称。 嵌入提示还可以为具有推断类型(即
var
)和 lambda 参数类型的变量显式类型提示。 可以通过“
工具>选项>文本编辑器>C#>高级
”启用此功能。
代码搜索和导航
在一体化搜索中,我们进行了一些更改以简化 UI 并提高可读性。 这些更改包括删除查询中匹配项的突出显示、删除包含每种结果类型计数的状态栏,以及将状态消息移至筛选器行。
让我们了解你对
开发者社区
的看法。
使用新的文本格式选项提高 Visual Studio 的可读性
我们解决了
Visual Studio 2019 中的斜体字体支持问题
,将斜体、删除线和下划线作为整个 IDE 中文本格式设置的附加选项。
要使用新选项来个性化你的体验,请导航到“工具”>“选项”>“环境”中的“字体和颜色”页面,你可以在其中找到前面提到的每个选项的复选框。
图像悬停预览
任何 Web、桌面或移动开发者都经常使用图像。 你可以从 C#、HTML、XAML、CSS、C++、VB、TypeScript 甚至代码注释中引用图像。 有些图像位于本地的,有些存在于线上或网络共享上,还有一些图像仅作为 base64 编码字符串存在。 我们在代码中以多种方式来引用它们,但系统始终会以字符串值显示图像,而不显示图像的外观。 这种情况到此为止了。
我们添加了一个编辑器工具提示,系统会在鼠标悬停在代码编辑器中的图像引用上时显示该提示。 工具提示以原始尺寸显示图像,但宽度和高度上限为 500 像素。 在预览图像下方,你将看到图像大小(以像素为单位)和文件大小(以字节为单位)。
此功能是与 Visual Studio 社区
密切合作
开发而成。 谢谢!
通过与关键合作伙伴展开的富有成效的合作,我们很高兴地宣布推出对 WinForms 服务器进程 TypeResolutionService 的重大优化。 这些增强功能显着提高了设计时性能,在典型的业务线应用程序中实现了不低于 30% 的提升,最高可取得 50% 的提升程度,十分引人注目。 值得注意的是,在触发服务器进程重新启动和设计器重新加载的场景中,这些增强功能的效果尤为突出,例如项目重建或项目引用调整。 这些性能改进的核心在于我们团队实施的新机制,优先考虑对设计器负载至关重要的组件。 我们推荐你探索更新的设计器,并通过
VS 反馈渠道
分享宝贵的反馈,以便我们可以继续改进 WinForms 设计器的性能。
ARM64 版 Visual Studio 支持 SSDT
现在可以在 ARM64 版 Visual Studio 中创建数据库项目。 此版本中提供的 SSDT 的一些主要功能包括:
数据库项目(打开、生成、发布)
查询编辑器
数据库属性编辑器
此版本的一些限制如下所示:
IntelliSense
使用 localdb 在本地计算机中开发数据库
对 SSDT 中 MCD(多列分布)的支持
用户现在可以在导出期间设置 DW 兼容级别。
我们在“操作选项卡”下的“数据库设置”中添加了一个新的数据库选项。 它的名称是“DW 兼容性级别”。
可能的值为 Auto|10|20|30|40|50|9000,并且仅适用于目标 - Microsoft Azure SQL 数据仓库
Visual Studio 更新现在将包括建议的组件
用户在安装期间选择的工作负载附带必需和建议的组件。 必需组件对于工作负载的功能至关重要,而建议的组件虽然是可选的,但在最大化其潜力方面发挥着重要作用。
自 Visual Studio 2017 发布以来,已通过次要版本更新持续将增强功能集成到 IDE 中。 这些改进可提高工作效率并扩展开发功能,并无缝集成到现有组件和新组件中。 但是,许多用户可能无法在增量更新时了解这些新的推荐组件。 若要解决此问题,从 17.10 P1 开始,Visual Studio 将在更新期间自动安装这些建议的新组件。 值得注意的是,更新期间安装的建议组件仅适用于用户选择的工作负载。
同样,在更新期间,此功能可确保未安装任何新工作负载。 此外,用户选择不安装的任何现有推荐组件仍保持不变。
如果你不想使用此功能,可以轻松在安装程序的“更新设置”对话框中将其取消选中。 如果建议的组件不再需要修改安装,还可以删除建议的组件。
有关 Visual Studio 中所有组件(包括建议的组件)的列表,请参阅
Visual Studio 组件 ID
尝试启动 Android 仿真器时,Visual Studio 将检查硬件加速,并显示有用的对话框来说明潜在的性能影响。 如果未配置计算机,或者计算机不支持使用 Windows 虚拟机监控程序平台 (WHPX) 进行硬件加速,则现在需要 Android Emulator 虚拟机监控程序驱动程序 (AEHD)。 Android 仿真器 API 33 及更高级别中已弃用 Intel 硬件加速执行管理器 (HAXM),并且在 Intel 处理器上已被 AEHD 取代。
有关详细信息,请参阅
如何使用 Android 仿真器启用硬件加速(Hyper-V 和 AEHD)
将工作项链接到拉取请求
在 Visual Studio 中创建拉取请求时,Azure DevOps 用户的
首要请求
是启用工作项链接。 现在,可试用“相关工作项”部分查看你在拉取请求说明中引用的任何工作项,并将工作项连接到 Azure DevOps 上的拉取请求。
我们现支持在 CMake 目标视图中固定 CMake 目标。 对于已固定的目标,现在有一个顶级文件夹。 可在上下文菜单上右键单击并选择
Pin
选项来固定任何目标。
还可选择
Unpin
,取消固定“已固定的目标”文件夹中的任何目标。
MSVC 工具集将次要版本号从
19.39
(VS 2022 v17.9) 递增到
19.40
(VS 2022 v17.10)。 MSVC 工具集将是预览版 1 中的版本 19.40.33521.0。 有关更多详细信息,请参阅
“VS 2022 v17.10 中的 MSVC 工具集次要版本号 14.40”博客文章
。
现在可以使用 Build Insights 来查看模板实例化信息。 必须在“工具”>“选项”>“Build Insights”中激活模板实例化集合。
我们添加了额外的 Unreal Engine 宏,根据 UE 代码样式进行缩进。
现在,你可使 Unreal Engine 测试适配器所需的 Unreal Engine 插件保持在后台运行,从而极大地降低启用成本。 这是一项选择加入功能,可通过“工具”>“选项”>“Unreal Engine”来激活。
C++ 内存布局可视化
Visual Studio 现在具有 C++ 内存布局可视化功能。 此功能显示编辑器中类、结构和联合的内存布局,无需编译。 将鼠标悬停在类型上时,“内存布局”链接将显示在“快速信息”中。 单击此链接将打开一个窗口,其中显示所选类型的内存布局,并包含各个数据类型的大小和偏移量的详细信息。
Win32 应用隔离
一项突破性的安全功能,可增强用户隐私和应用程序完整性。 Win32 应用隔离建立在 AppContainer 的基础上,可确保应用程序已沙盒化,从而提供一个安全的环境,限制潜在威胁的影响。
开发人员现在可轻松地将应用程序隔离在 Visual Studio 中的,从而简化流程并改进其项目的整体安全状况。 你可以直接与
开发人员社区互动,并提供有关新功能和改进的反馈
。
安装了 Delinea 特权管理软件的用户可能会在启动 Visual Studio 时遇到问题。 Delinea 已了解此问题并已解决此问题。 请通过
https://delinea.com/support
联系他们,获取有关如何解决此问题的说明。
源代码管理对话框:为避免看到“找不到与此解决方案关联的源代码管理提供程序”对话框,请参阅此
工单
获取解决办法。
针对 UWP 的 C++ 用户可能会由于缺少
C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop
文件夹而遇到生成错误
Could not find SDK "Microsoft.VCLibs.Desktop, Version=14.0"
。 有关详细信息和解决方法,请参阅此
工单
。 此问题的优先级正在确定。 (2024 年 5 月 29 日更新:此问题自 17.10.1 版本起得到修复)。
生成托管 MFC DLL 的 C++ 用户可能会遇到生成错误
error LNK2001: unresolved external symbol "public: __cdecl PostDllMain::PostDllMain(void)"
。 有关详细信息和解决方法,请参阅此
工单
。 此问题的优先级正在确定。 (2024 年 5 月 29 日更新:此问题自 17.10.1 版本起得到修复)。
C# 编译器中的优化会导致对值为 null 的小数和值为 0.00m 的小数之间的比较错误地被视为相等。
.NET 编译器存储库中提供了更多详细信息
。
对基础 Windows 组件进行的最新更新导致诊断工具窗口发生中断性变更,而这又会影响探查器工具。 这会影响所有 Visual Studio 2022 版本。
可以在开发者社区网站上查看其他详细信息和最新更新
。
此更新可能包括单独许可的新 Microsoft 或第三方软件,如
第三方通知
或其随附许可证中所述。
反馈和建议
我们期待你的宝贵意见和建议! 可使用安装程序或 Visual Studio IDE 右上角的“发送反馈”图标,或者通过“帮助”
>
“发送反馈”来
报告问题或提出功能建议
。 可在
Visual Studio 开发者社区
跟踪你的问题,也可在这里添加评论和查找解决方案。 此外,还可通过
实时聊天支持
获得免费安装帮助。
Blogs
通过参考开发人员工具博客网站中的见解和建议,随时掌握所有新版本的最新最全资讯,并发表有关大量功能的深入分析帖子。
开发人员工具博客