Visual Studio 2022 版本 17.1 发行说明
提示
观看 Visual Studio 2022 发布活动的录制内容,了解新功能,听取提示和技巧,并下载免费的数字材料。
开发者社区 | Visual Studio 2022 路线图 | 系统要求 | 兼容性 | 可分发代码 | 发行历史记录 | 许可条款 | 博客 | 最新版本已知问题 | Visual Studio 新增功能文档
Visual Studio 2022 版本 17.1
支持的时间范围
此版本现已不受支持。 有关 Visual Studio 支持的基线的详细信息,请查看 Visual Studio 2022 的支持策略。
请参阅最新版本的发行说明或访问 Visual Studio 站点下载最新版本的 Visual Studio 2022。
Visual Studio 2022 版本 17.1 发行版
- 2022 年 5 月 10 日 - Visual Studio 2022 版本 17.1.7
- 2022 年 4 月 26 日 - Visual Studio 2022 版本 17.1.6
- 2022 年 4 月 19 日 - Visual Studio 2022 版本 17.1.5
- 2022 年 4 月 12 日 - Visual Studio 2022 版本 17.1.4
- 2022 年 3 月 31 日 — Visual Studio 2022 版本 17.1.3
- 2022 年 3 月 22 日 — Visual Studio 2022 版本 17.1.2
- 2022 年 3 月 8 日 — Visual Studio 2022 版本 17.1.1
- 2022 年 2 月 15 日 — Visual Studio 2022 版本 17.1.0
Visual Studio 2022 博客
可从 Visual Studio 2022 博客获取来自 Visual Studio 工程团队的官方产品见解。 有关 Visual Studio 2022 版的详细信息,可参阅以下文章:
Visual Studio 2022 已存档的发布说明
Visual Studio 2022 版本 17.1.7
发布日期:2022 年 5 月 10 日
此次发布的 17.1.7 中已解决的问题
- 更新了 Daytona 中的 webview2 基线。
来自开发者社区
安全顾问公告
CVE-2022-29117 .NET 拒绝服务漏洞 .NET 6.0、.NET 5.0 和 .NET Core 3.1 中存在漏洞,恶意客户端可以操纵 Cookie 并导致拒绝服务。
CVE-2022-23267 .NET Core 拒绝服务漏洞 .NET 6.0、.NET 5.0 和 .NET Core 3.1 中存在漏洞,恶意客户端可利用通过 HttpClient 分配的过量内存导致拒绝服务。
CVE-2022-29145 .NET 拒绝服务漏洞 .NET 6.0、.NET 5.0 和 .NET Core 3.1 中存在漏洞,恶意客户端可在解析 HTML 表单时导致拒绝服务。
CVE-2022-24513 特权提升漏洞 当 Microsoft Visual Studio 更新程序服务错误分析本地配置数据时,存在潜在的特权提升漏洞。
Visual Studio 2022 版本 17.1.6
发布日期:2022 年 4 月 26 日
此次发布的 17.1.6 中已解决的问题
- 修复了在运行代码分析按位枚举检查时 C++ 编译器 (CL.exe) 有时会崩溃的问题。
- 修复了 iPhone 模拟器 - 错误: 无法加载文件“System.Memory”的问题
- 修复了 17.0.8 的 VisualCPP SxS 中的 vctip.exe 回归
- 修复了 VisualCPP SxS 中的一个 bug,此 bug 阻止某些使用地址擦除器 (ASAN) 构建的应用程序在 Windows 11 中加载。
- 修复了 VisualCPP SxS 中的另一个 ASAN 问题,在该问题中,具有堆争用的多线程应用程序可能会遇到死锁、错误的“野指针释放”报告或进程退出期间的死锁。
来自开发者社区
开发者社区提供了 17.1 中可用修补程序的完整列表。
Visual Studio 2022 版本 17.1.5
发布日期:2022 年 4 月 19 日
此次发布的 17.1.5 中已解决的问题
- 修复了 17.1.4 的 vctip.exe 回归
- 修复了“无法在脱机计算机上安装 Visual Studio 的任何扩展 (vsix)”问题。
来自开发者社区
开发者社区提供了 17.1 中可用修补程序的完整列表。
Visual Studio 2022 版本 17.1.4
发布日期:2022 年 4 月 12 日
注意
由于更新了 Visual Studio 中的 Git 版本以解决安全漏洞 CVE-2022-24765,某些 Git 用户可能会遇到阻止 Git 存储库出现在 Visual Studio 中的错误。
以管理员用户身份克隆或创建存储库,然后尝试以非管理员身份查看或使用该存储库的用户可能会受到此问题的影响。 如果遇到此问题并信任尝试打开的存储库,可以通过从命令提示符、PowerShell 或有权访问适用于 Windows 的 Git 的终端运行以下命令,将其添加到安全目录列表中:
git config --global --add safe.directory <path-to-repository>
可以找到完整的详细信息,并跟踪有关开发者社区更新的问题。
此次发布的 17.1.4 中已解决的问题
- 修复了模板中对“new”的调用未通过自变量依赖查找找到正确的“operator new”函数的问题。
- 修复了 Windows 窗体 .NET Framework 设计器的设计时类型解析问题,否则会导致设计器加载失败。
- 修复了“HotRestart.Tasks.DetectSigningIdentity”任务意外失败的问题。
- 添加了安装程序命令行以删除未使用的通道。
已知问题
- 不支持同步 Apple 开发人员帐户证书和预配配置文件,但打算用于内部部署的帐户除外。 若要解决此问题,请直接从 Apple 开发人员帐户网站下载证书和预配配置文件。
来自开发者社区
安全顾问公告
CVE-2021-43877 ASP.NET Core 和 Visual Studio 特权提升漏洞 ASP.NET Core 模块 (ANCM) 中存在特权提升漏洞,当 .NET Core、.NET 5 和 .NET 6 应用程序托管在 IIS 中时,该漏洞可能允许特权提升。
CVE-2022-24765 特权提升漏洞 Git for Windows 中存在潜在的特权提升漏洞,其中 Git 操作可以在存储库外部运行,同时搜索 Git 目录。 Git for Windows 现已更新为版本 2.35.2.1。
CVE-2022-24767 DLL 劫持漏洞 在 SYSTEM 用户帐户下运行卸载程序时,Git for Windows 安装程序中存在潜在的 DLL 劫持漏洞。 Git for Windows 现已更新为版本 2.35.2.1。
CVE-2022-24513 特权提升漏洞 当 Microsoft Visual Studio 更新程序服务错误分析本地配置数据时,存在潜在的特权提升漏洞。
Visual Studio 2022 版本 17.1.3
发布日期:2022 年 3 月 31 日
此次发布的 17.1.3 中已解决的问题
- 引入了对 Apple Xcode 13.3 的支持。
- 修复了使用 Xcode 13.3 时发生的 iOS IPA 生成器错误(错误 ITMS-90207)。
- 修复了未能将 <电子邮件> 帐户与 Apple 开发人员门户同步的问题
- 修复了长时间使用 TFVC(超过一个小时)时,Visual Studio 挂起/冻结的问题。
- 修复了从 Visual Studio SQL Server Data Tools 连接到 Azure SQL 托管实例时的错误消息“检测到不兼容的 SQL Server 版本。”。
已知问题
- 使用 Visual Studion 2022 和 Apple Xcode 13.3 部署 iOS 应用会导致远程 iOS 模拟器窗口空白/黑屏。 规避方法:在“工具”-“选项”菜单下的“iOS 设置”中禁用“远程模拟器到 Windows”复选框。 iOS 应用应在 macOS 主机上正确部署。
来自开发者社区
开发者社区提供了 17.1 中可用修补程序的完整列表。
Visual Studio 2022 版本 17.1.2
发布日期:2022 年 3 月 22 日
此次发布的 17.1.2 中已解决的问题
- 修复了即使关联的测试执行已完成的情况下,导致测试执行的某些动画在后台运行的问题。 这会导致高刷新率监视器上出现特别明显的速度放缓。 此修补程序应会改进在高刷新率监视器上使用 VS 的体验。
- 在打开 Visual Studio 时,禁用自动打开堆栈跟踪资源管理器窗口的行为。 这仍然可以在选项中启用。
- 修复了拖动停靠文档选项卡仅适用于停靠装饰器而不是其他文档选项卡的回归问题。
- 修复了零星链接器挂起的问题。
来自开发者社区
开发者社区提供了 17.1 中可用修补程序的完整列表。
Visual Studio 2022 版本 17.1.1
发布日期:2022 年 3 月 8 日
此次发布的 17.1.1 中已解决的问题
来自开发者社区
开发者社区提供了 17.1 中可用修补程序的完整列表。
- 在自定义命令中使用 CONFIG 时,17.1.0 中的 CMake->vcxproj 回归
- VSSDK:VS 17.1.0 预览版 5.0 在 IVsObjectManager.UnregisterLibMgr() 之后挂起
安全顾问公告
CVE-2020-8927 漏洞 .NET 5.0 和 .NET Core 3.1 中存在远程代码执行漏洞,其中在 1.0.8 之前的 Brotli 库版本中存在缓冲区溢出。
CVE-2022-24464 漏洞 分析某些类型的 http 表单请求时,.NET 6.0、.NET 5.0 和 .NET CORE 3.1 中存在拒绝服务漏洞。
CVE-2022-24512 漏洞 .NET 6.0、.NET 5.0 和 .NET Core 3.1 中存在远程代码执行漏洞,其中堆栈缓冲区溢出发生在 .NET Double Parse 例程中。
CVE-2021-3711 OpenSSL 缓冲区溢出漏洞 OpenSSL 中存在潜在的缓冲区溢出漏洞,Git for Windows 会使用该漏洞。 Git for Windows 现已更新为版本 2.35.1.2,解决了此问题。
Visual Studio 2022 版本 17.1.0
发布时间:2022 年 2 月 15 日
此发行版 Visual Studio 2022 版本 17.1.0 的新增内容摘要
C++
- 添加了新的配置预设模板,以使用 CMakePresets.json 在远程 macOS 系统上配置和生成 CMake 项目。 此外,还可以在远程 macOS 系统上启动 CMake 目标,然后使用由 GDB 或 LLDB 提供支持的 Visual Studio 调试程序的前端进行调试。
- 现在,可以使用 LLDB 或 GDB 在 Visual Studio 中调试远程 macOS 系统上的核心转储。
- Visual Studio 附带的版本 Clang 和 LLVM 已升级到 v13。
- Visual Studio 的 CMake 集成仅当在开放工作区根目录中识别到 CMakeLists.txt 时激活。 如果在该工作区的其他级别识别到 CMakeLists.txt,则系统会通过发出一条通知来提示你激活 Visual Studio 的 CMake 集成。
- 为嵌入式目标添加了一个新的寄存器可视化窗口,可通过“调试”>“窗口”>“嵌入式寄存器”访问该窗口。
- 为 RTOS 项目添加了一个新的线程视图,可通过“调试”>“窗口”>“RTOS 对象”访问该视图。
调试和诊断
- 添加了名为 StickyDataTips 的新功能,即,现可在单击离开前让数据提示保持展开状态。 利用此方法,可以非常轻松地在数据提示中评估对象。 若要启用此功能,请选中“工具”>“选项”>“调试”>“常规”下的“在单击离开前让展开的数据提示保持打开状态”复选框。
- 添加了对 Microsoft Azure 应用服务附加到进程的支持。
编辑器
- 现在可以将代码清理功能配置为在显式保存文件时运行。 在“工具”>“选项”下的“文本编辑器”>“代码清理”中,用户可以使用一个新选项在显式保存时启用代码清理,并选择要运行的配置文件。 请注意,此选项不会导致在自动保存时运行代码清除。
Git 工具
- 添加了在 Visual Studio 中比较分支的功能。
- 引入了对已分离头状态的增强功能,包括签出提交的功能。
- 多存储库分支增强功能,包括同时在不同存储库中创建分支的功能(预览功能)。
- 添加了在 Visual Studio 中创建新 Git 存储库时包含 README 文件的功能。
- 增强了利用悬停按钮固定常用分支的功能。
- 生成了一个更易于发现的 UI,用于将工作项与新提交相关联。
IDE
- 添加了切换颜色方案的功能,可以按文件扩展名或项目为你的标签着色。
- 添加了启用彩色标签时自定义标签颜色的功能。 在一个颜色标签上点击右键,选择“设置标签颜色”。
安装和更新
- 我们减少了安装后所需的重新启动次数。
- 需要重新启动经常是由于在使用系统目录中的 Visual C++ 运行时文件时对其进行更新引起的。 这些文件通常会正确更新;只是需要重新启动以清理已替换的文件。 在这些情况下,VS 安装程序现在会显示建议重新启动对话框。
- 当显示建议重新启动对话框时,客户可以立即启动 Visual Studio IDE(无需重新启动)。
- 向更新设置对话框中添加了有关 LTSC 通道到期日期的信息。
- 添加了以编程方式更改更新的源位置的功能,而与实际执行更新无关。 这使 IT 管理员能够以编程方式更改更新通道。
Microsoft Azure 应用服务附加到进程
- 现在,在没有打开解决方案或项目的情况下,可以附加到 Windows 应用服务的 .NET(Framework. Core 或 5+)。 打开“附加到进程”对话框 > 将“连接类型”更改为 Microsoft Azure 应用服务 > 选择“查找”>“选择你的订阅”,然后在资源组下找到你的应用服务并选择“确定”。 查找要连接到的进程,然后选择“附加”。
Microsoft Teams 开发人员工具
- Teams Toolkit 是可帮助开发人员为 Microsoft Teams 创建体验的 Visual Studio 扩展,并且是 Microsoft Teams Framework (TeamsFx) 的一部分。 有关 Teams Toolkit 和 TeamsFx 的详细信息,请参阅 GitHub 和 Microsoft Teams 文档。
- 现在可以在 Visual Studio 安装程序的 ASP.NET Web 开发工作负载中选择 Microsoft Teams 开发工具组件。
- 安装此组件会添加 Teams Toolkit 扩展。 使用新的 Microsoft Teams 应用项目模板开始创建新的 Teams 选项卡应用程序。
.NET 效率
可等待表达式中的
await
现在有 IntelliSense 补全。 开始键入可等待表达式,并注意await
在补全列表中的显示方式。现在有一个将静态成员移到新类型的重构。 将光标置于静态成员上。 按 (Ctrl+.) 触发“快速操作和重构”菜单。 选择“将静态成员移到其他类型”。这将打开一个对话框,你可以在其中选择要移动的成员。
现在有一个简化代码以使用新的 C# 10.0 扩展属性模式的重构。 使用扩展属性模式可以减少噪音,允许你引用嵌套成员而不是嵌套另一个递归模式。 将光标置于嵌套成员引用上。 按 (Ctrl+.) 触发“快速操作和重构”菜单。 选择“简化属性模式”。
现在有一个检测变量交换,并建议使用元组来交换值,因此无需使用临时变量按顺序交换参数即可使用元组的重构。 将光标放在要交换值的临时变量赋值上。 按 (Ctrl+.) 触发“快速操作和重构”菜单。 选择“使用元组交换值”。
代码定义窗口现在支持 C# 和 Visual Basic。 要使用代码定义窗口,请按 (Ctrl+W,D) 或选择“视图”>“代码定义窗口”。 接下来,将光标放在标识符上以导航和浏览代码。
现在有一个在整个项目中启用可为空的引用类型的重构。 可以通过向项目文件添加
<Nullable>
enable</Nullable>
元素或向项目中的每个源文件添加 #nullable enable pragma 来启用可为空的引用类型。 为了帮助简化此过程,我们现在将在 .NET 项目中自动包含<Nullable>
enable</Nullable>
元素。 对于现有的 .NET 项目,你可以通过将光标放在 #nullable enable pragma 上来启用可为空的引用类型。 按 (Ctrl+.) 触发“快速操作和重构”菜单。 选择“在项目中启用可为空的引用类型”。当元组在签名中出现多次时,“签名帮助”改进了其显示。 简化视图包括结构类型键,用于向你显示元组中包含的内容。
你现在可以一目了然地了解错误和警告,而无需将光标悬停在使用内联诊断的代码行上。 内联诊断默认处于禁用状态,因此需要在“工具”>“选项”>“文本编辑器”>“C# 或 Basic”>“高级”中启用它,然后选择“显示内联诊断(试验)”。
如果引用程序集具有嵌入的源代码或源链接,我们现在将嵌入的源代码和源链接显示为“转到定义”的一部分。 这使你可以导航到声明目标符号的原始源文件。 将光标放在一个符号上,然后按 F12 即可导航到原始源文件。
现在有一个“堆栈跟踪资源管理器”窗口,其中显示剪贴板中的堆栈跟踪,你可以单击并直接导航到相关代码。 默认情况下,如果从解决方案复制一个堆栈跟踪,然后将焦点切换到“堆栈跟踪资源管理器”窗口,随即将自动显示该堆栈跟踪。 若要打开“堆栈跟踪资源管理器”窗口,请转到“视图”>“其他窗口”,然后选择“堆栈跟踪资源管理器”。
在 Visual Studio 2019 中,我们为 EditorConfig 引入了新 UI。 EditorConfig 文件通过定义代码样式和格式帮助保持代码一致。 这些文件可以与代码一起存储在其存储库中,并使用相同的源代码管理。 这样,对于从该存储库克隆的每个团队成员,样式指南都是相同的。 在此版本中,我们向 EditorConfig UI 添加了命名样式。 若要将 EditorConfig 文件添加到某个项目或解决方案,请在解决方案资源管理器中右键单击该项目或解决方案名称。 选择“添加新项”。 在“添加新项”对话框中,搜索“EditorConfig”。 选择 .NET EditorConfig 模板以添加使用默认选项预填充的 EditorConfig 文件。 请注意新的 EditorConfig UI 和新的命名样式选项。
其他改进
- PDB 中源信息中的“转到定义”。
- 可等待表达式中的
await
有 IntelliSense 补全。 - 将静态成员移到新类型的重构。
- 简化代码以使用新的 C# 10.0 扩展属性模式的重构。
- 检测变量交换并建议使用元组来交换值的重构。
- 代码定义窗口支持 C# 和 Visual Basic。
- 在整个项目中启用可为空的引用类型的重构。
- 当元组在签名中多次出现时,签名有助于简化视图改进。
- 通过内联诊断一目了然地了解错误和警告。
谢谢
- 最后但同样重要的是,非常感谢以下人士在这个月对 .NET 效率(又名 Roslyn)所做的贡献:
- Youssef Victor (@Youssef1313):
- Petr Onderka (@svick):
- 不建议简化位置模式 PR #57676
- Saleh Ahmed Panna (@panna-ahmed)
- 本地化了缺失警告信息 PR #57502
- Pavel Krymets (@pakrym)
- 请勿规范化代码注释中的前导空格 PR #57414
- Kev Ritchie (@KevRitchie)
- 更新文档以说明 FullQualifiedFormat 行为 PR #57397
- Marcio A Braga (@MarcioAB)
- 更新 TextSpan.cs PR #57300
- Bernd Baumanns (@bernd5)
- “函数指针调用具有‘无’IOOperation”的解决办法 PR #57191
- Martin Strecker (@MaStr11):
- CS1591 的代码修复:添加 inheritdoc PR #57004
- Paul M Cohen (@paul1956):
- 问题“_ ' 注释后 LineContinuation 的 VB 格式错误”的初始解决办法 PR #54559
.NET 热重载
- 为生成 Blazor 应用程序的开发人员对 .NET 热重载进行了多项改进,包括以下问题的解决方案:
- 生成 WebAssembly (Wasm) 应用的 Blazor 开发人员有时会在实际应用更改时看到强制编辑对话框,或者看到强制编辑对话框多次出现。
- 如果生成 WebAssembly (Wasm) 应用的 Blazor 开发人员使用了强制编辑对话框的重新生成功能,然后尝试对 Razor 文件进行更改,他们将永久进入强制编辑状态。
- Blazor 开发人员在通过 Visual Studio 调试器 (F5) 运行其应用时,有时会看到其热重载会话终止。
- 如果 Blazor 开发人员尝试编辑 error.cshtml 文件并使用 .NET 热重载对其应用更改,他们将看到 Visual Studio 调试器中断并显示“无法停止调试...”消息。 随着我们努力改进此功能和稳定性,我们将在 Visual Studio 的未来版本中进行更多 bug 修复。 如果遇到任何问题,请使用 Visual Studio 的“报告问题”功能进行报告。
性能
- 通过优化关闭解决方案时的清理操作,提高在关闭解决方案方面的性能。
- Visual Studio 现可为代码库中的文件编制索引,从而提供更快的“在文件中查找”搜索体验。 禁用“工具”>“选项”>“环境”>“预览功能”中的索引搜索,然后切换“启用索引以获得更快的查找体验”。
Razor (ASP.NET Core) 编辑器
- Razor 现在将添加缺少的 using 指令(如果快速操作需要该指令)。
解决方案筛选器
- 添加了一个选项,用于在解决方案筛选器中加载或重新加载项目的整个依赖项树。 将新项目添加到依赖项树,但尚未手动将其添加到解决方案筛选器时,可以轻松地一次性添加所有依赖项。
- 此选项(更新项目依赖项)位于解决方案节点的上下文菜单中(在解决方案资源管理器中右键单击解决方案)。
测试工具
- 现在,在进行测试操作时,Visual Studio shell 的底部会出现一个测试动画。 它与生成动画类似,让你知道 Visual Studio 正在处理什么内容,并向你提供进程尚未崩溃的指示器。
- 代码覆盖率工具现在可以生成 cobertura 代码覆盖率格式。 若要在 runsettings 中启用此功能,可以在 runsettings 文件的 DataCollector 配置部分添加
<Format>Cobertura</Format>
。 可以在 Visual Studio Enterprise 的代码覆盖率结果窗口中查看此格式。 - 你也可以通过在 runsettings 文件中指定或在一个参数中指定,从 cli 中用 cobertura 格式进行收集。 对于 dotnet cli,请使用
dotnet test --collect:"Code Coverage;Format=Cobertura"
。 对于 vstest,请使用vstest.console.exe /collect:"Code Coverage;Format=Cobertura"
。 collect 参数将覆盖 runsettings 中指定的格式。
Web 工具
- 预配和选择 Azure 资源时,Visual Studio 会记住你先前为字段“资源组”和“位置”进行的选择,而不是始终默认为列表中的第一个条目。 即使上一个选择不可用,Visual Studio 现在也会计算最近的地理位置,并默认选择该位置。
- 现在,发布配置文件始终按字母顺序列在“发布摘要”页顶部的下拉菜单中,以及 Visual Studio 工具栏中名为“Web 单击发布”的下拉菜单中。
- Azure 容器应用的工具支持保留在 Visual Studio 预览通道中。 若要继续使用 Azure 容器应用,请安装 17.2 预览版 1 版本。
XAML 热重载
- XAML 热重载现在与 .NET 热重载一起使用时支持更多端到端方案。 已启用以下方案:对于 WPF 和 WinUI 3 应用:
- XAML 代码编辑器现在将在 IntelliSense 中正确显示新创建的控件类型和由 .NET 热重载操作创建的属性。
- 使用 .NET 热重载绑定到新创建的属性现在可以正常工作。 对于 WinUI,现在还可使用 x:Bind 绑定到新属性。 对于 WPF 应用:
- 为使用.NET 热重载创建的事件处理程序添加新创建的方法现在可以工作。 注意:虽然在首先使用 .NET 热重载应用这些类型,然后使用 XAML 热重载的情况下上述方案都会工作,但存在一个已知限制。 例如,如果使用 XAML 热重载为尚未创建的属性分配新属性,并且随后仅使用 .NET 热重载创建该属性,则 XAML 更改将看不到这个新属性。 我们已意识到此问题,并希望在将来改进。
XAML 实时预览版
- 我们对标尺、缩放和元素选择行为进行了多项改进。
- XAML 实时预览版现在支持 .NET MAUI 应用(WinUI 和 Android),但仍仅限于 .NET MAUI 可用的版本。
在此版本中,我们对 XAML 实时预览版进行了多项改进,更改包括:
.NET MAUI 支持(WinUI 和 Android Emulator):现在支持作为 WinUI 3 应用运行或在 Android Emulator 中执行的 .NET MAUI 应用。
(注意:目前不是每个 Visual Studio 版本都支持 .NET MAUI,因此,从 17.1 开始内置的此功能仅在 .NET MAUI 可用的那些版本中可用)
标尺更改: 标尺现在可以根据应用程序配置正确地从右到左或从左到右显示像素指示器。 元素选择更改: 现在,使用 XAML 实时预览版中的“选择元素”功能将始终导航到源。 以前这是一个可配置的选项,但在此版本中已将其删除,并且其行为已标准化以避免混淆。 缩放改进: 缩放下拉菜单现在支持自动“适应全部”、“适应宽度”或“适应高度”,以便更轻松地缩放这些场景。 你仍可以将常规百分比缩放或滚轮与该新功能一起使用。
17.1 版中解决的问题
- 解决了 DataSet 自定义调试程序可视化工具无法用于远程 Azure 应用服务调试方案的问题。
- 添加了对取消挂起的“热重载”操作的支持。
- 解决了 Xamarin 热重启的增量部署问题。
- 修复并启用了对 TFS 的 Code Lenses 支持。
- 修复了导致 Razor 和 LiveShare 方案中代码着色不一致的 bug。
- 在面向 macOS 系统上的 CMake 项目时,Visual Studio 的 C++ intellisense 得到了改进。 Visual Studio 现在搜索 C++ 标头时,可处理 CMake 的 CMAKE_OSX_SYSROOT 变量。
- 已修复涉及在组合 /openmp:llvm 和 /ZI 时使用 omp 任务会导致编译器故障或无提示生成错误代码的多个问题。
- 修复了禁用快速部署时调试 Android 应用程序时的问题。
- 更正了使用 /experimental:deterministic、/pathmap 和 /clr 时导致 C2567 的问题。
- 已修复 /RTC 标志中的 ARM64X thunk 的故障。
- 链接时不要修饰已修饰的 ARM64EC 符号。
- 已修复 Azure 容器应用工作流生成问题,即如果已存在同名的服务主体,服务主体生成会失败。
- 向 ATL CString 添加了 <=> 和 == 运算符。
- 更新了链接器标志表,允许 -cgthreads 和 -pdbthreads 在 GENRROFILE 和 USEPROFILE 阶段之间有所不同。
- 使用 ClickOnce 发布包含 x86 COM 引用的项目的问题已修复。
- 已修复在 Manage Docker Compose“启动设置”对话框中添加多个启动配置文件时的 VS 故障错误。
- 修复 Xamarin.Android 应用程序中
no-write-symbols,nodebug
AOT 程序集的打包问题。 - 在某些情况下,C# 编译器会在使用内插字符串处理程序和析构分配中的 from-end 索引器时生成不正确的代码或发生故障。 这些问题现已修复。 有关更多详细信息,请参阅 https://github.com/dotnet/roslyn/issues/58514 和 https://github.com/dotnet/roslyn/issues/58569 。
- 已修复在 WinForms .NET 设计器打开并对项目执行某些操作时出现间歇性 VS 故障的问题。
- 将 ARM64EC 添加到 link.exe 的 /MACHINE 选项。
- 修复了有时对 CMake 工作区设置文件的更改不生效的问题。
- 在某些情况下,将辅助角色服务发布到 Azure 容器应用会失败且无提示。
- 修复了 Visual Studio 在 Windows 7 计算机上无法启动的问题。
来自开发者社区
- 我经常不得不强制终止 devenv.exe 以关闭 VS,因为环境被锁定在编辑中,并且不会继续运行任何内容
- Razor 工具:一直显示迪斯科颜色
- 内联替换重点关注错误的输入
- MSB3179:隔离 COM 引用“SMTLib”时出现问题:未检测到此组件的注册类
- 无法通过屏幕阅读器使用新的“项目调试属性”窗口。
- 热重载不适用于 .NET 网站项目中的 .cshtml 文件
- 源生成器生成的代码标有红色波浪线,但可以正常编译
- “双向文本控制”选项需要完善
- 尝试通过“管理 Docker Compose 设置”添加新的启动配置文件会导致 Visual Studio 2022 崩溃。
- 源生成器 Intellisense 不适用于客户端项目
- iOS 15 的热重启失败,涉及嵌入的字体和一些其他组件(如 Firebase)
- 使用 UE5 抢先体验的 Visual Studio 中的“转到定义”运行缓慢(之前是 Make IntelliSense 在大型项目上运行)
- Visual Studio 2022 + Xamarin + SignalR 中的 bug(未找到方法)
- “Git 存储库”窗口使用错误的日期格式(VS 2022 中的回归)
- Visual Studio 遇到意外问题
- Visual Studio 2022 预览版 7 停滞在“等待 IntelliSense 完成初始化...”
- System.InvalidOperationException:无挂起的更新
- 如果编译单个 cpp,UseMultiToolTask 会导致 C++ 预编译标头中的更改检测中断
- 无法解析符号 '“WebAssembly”'
- 在 blazor 页面 (*.razor) 中,将分号添加到 c# 代码行会导致光标跳转
- PackageId:Microsoft.VisualStudio.TestWindow.SourceBasedTestDiscovery;PackageAction:Install;ReturnCode:-2147024690;
- 模块:在导入模块时,std::any 会中断重要代码
- ARM64:编译器决定按值传递时会生成不正确的代码
- 在最大并行编译作业 >1 的情况下在 WSL 上进行编译时出错
- 在可能打算使用逻辑“||”时,使用按位“|”
- Visual Studio 2019 16.10.X 版本中的“查找所有引用”功能
- 使用 ClickOnce 发布包含 x86 COM 引用的项目的问题已修复
- Visual Studiof 升级中断了包编译
- 使用 C++ 进行 Linux 开发 - 内部动态链接错误
- 不能正确分析没有 Doxygen 标志的注释
- 命名空间中包含本地声明的链接错误
- launch.vs.json 的预定义宏
- 解决方案资源管理器不显示 Power Shell 文件图标
- C26440 误报函数可以声明为“noexcept”
- C++:对于模板特殊化,std::is_empty 不正确
- 适用于 Linux 的 VC++:在复制源之前运行的远程预生成事件
- 使用 .Net 6 + VS Community 2022 的 Blazor Server 和 Css 隔离
请参阅此版本中的开发者社区修补程序完整列表。
已知问题
通过以下链接查看 Visual Studio 2022 中所有待解决问题和可用暂避方法。
反馈和建议
我们期待你的宝贵意见和建议! 可使用安装程序或 Visual Studio IDE 右上角的“发送反馈”图标,或者通过“帮助”>“发送反馈”来报告问题或提出功能建议 。 可在 Visual Studio 开发者社区跟踪你的问题,也可在这里添加评论和查找解决方案。 此外,还可通过实时聊天支持获得免费安装帮助。
Blogs
通过参考开发人员工具博客网站中的见解和建议,随时掌握所有新版本的最新最全资讯,并发表有关大量功能的深入分析帖子。