微软发布 Visual Studio 2022 并进行多项新改进

阅读时间图标 12分钟读


读者帮助支持 MSpoweruser。如果您通过我们的链接购买,我们可能会获得佣金。 工具提示图标

阅读我们的披露页面,了解如何帮助 MSPoweruser 维持编辑团队 查看更多

Microsoft Visual Studio 2022 预览版

Microsoft Visual Studio 2022 预览版

微软今天宣布 Visual Studio 2022 全面上市。此 GA 版本的 Visual Studio 2022 附带上线许可证,用于生产使用。

Visual Studio 2022 的主要功能:

64 bit

  • devenv.exe 现在只有 64 位

Azure 云服务

  • 现在支持 Azure 云服务(经典)和 Azure 云服务(扩展支持)项目。

C + +中

  • v143 构建工具现在可通过 Visual Studio 安装程序以及 独立的构建工具.
  • 在调试器下运行时,本机 C++ 应用程序现在可以使用新的热重载体验。 它支持 MSBuild 和 CMake 项目。 有关更多信息,请参阅我们的 热重载部分 联络一位教师
  • 您现在可以在 WSL2 上本地构建和调试,而无需建立 SSH 连接。 支持跨平台 CMake 项目和基于 MSBuild 的 Linux 项目。
  • Visual Studio 现在支持 buildPresets.targets CMakePresets.json 中的选项。 这允许您在 CMake 项目中构建目标子集。
  • CMake 项目中的项目菜单已经过简化,并提供了“删除缓存和重新配置”和“查看缓存”选项。
  • CMake 概述页面已更新以支持 CMakePresets.json。
  • 实施 /scanDependencies 用于输出 CMake 项目的 C++20 模块依赖项的标志,如中所述 P1689r3. 这是支持使用 CMake 构建基于模块的项目的一步,我们正在努力在以后的版本中完成此支持。
  • 您现在可以使用 LLDB 从 Visual Studio 调试在远程系统上运行的进程。
  • 我们已将 Visual Studio 附带的 CMake 版本升级到 3.21 版。 见 CMake 3.21 发行说明 有关可用内容的详细信息。
  • Visual Studio 附带的 LLVM 工具已升级到 LLVM 12。请参阅 LLVM 发行说明 了解详情。
  • MSVC 工具集现在默认为 SHA-256 调试记录中的源哈希. 以前,该工具集默认使用 MD5 进行源散列。
  • 使用 C++ 工作负载的游戏开发现在安装了支持 Visual Studio 2022 的最新虚幻引擎。
  • 在为导入的模块和标题单元的类型提供导航和语法突出显示时,改进了 C++ IntelliSense。
  • 通过优化缓存的标头使用和符号数据库访问来改进 C++ IntelliSense 性能,提供更短的加载时间以进入您的代码。
  • C++ 的 IntelliSense Code Linter 现在默认开启,提供即时的键入建议并修复常见代码缺陷的建议。
  • 交换机下对libfuzzer的支持 -fsanitize=fuzzer。 看 文件 以获得更多细节。
  • 我们在代码分析工具中改进了空指针取消引用检测。
  • 代码分析现在强制使用注释的函数的返回值 _Check_return_ or _Must_inspect_result_ 必须检查。
  • 增加了对 gsl::not_null 进行代码分析。
  • 在 C++ 移动开发工作负载中更新到 NDK r21 LTS。
  • 现在不推荐使用 C++ AMP 标头。 包括在 C++ 项目中会产生构建错误。 要使错误静音,请定义 _SILENCE_AMP_DEPRECATION_WARNINGS。 请参见 我们的 AMP 弃用链接 以获得更多细节。

调试和诊断

  • 附加到进程对话框改进
  • 异常助手改进
  • 强制运行以单击
  • 内存转储诊断分析
  • 我们发布了一种名为 Dependent Breakpoint 的新型断点,它允许您将断点配置为仅在第一次命中另一个断点时才启用。
  • 我们为 Extrenal Sources 节点添加了更多更新,您现在可以在子节点“Modules without Sources”下看到模块,并从解决方案资源管理器本身加载符号。
  • 断点间距改进
  • 临时断点
  • 拖放断点
  • 解决方案资源管理器中的外部源节点
  • 附加到进程对话框改进

个性定制

  • 为垂直和水平选项卡添加了颜色选项卡
  • 添加了主题包并与 VS Code 主题作者合作推出 自定义主题集合
  • 建于 主题转换器 将 VS Code 主题转换为在 Visual Studio 2022 中工作
  • 添加了将 Visual Studio 主题与 Windows 主题同步的功能
  • 添加了新的文档管理功能,包括自定义标签宽度、加粗活动文档以及 docwell 中的附加关闭按钮。

编者

  • 添加了子词导航
  • 自动保存现在可作为预览功能使用
  • 多插入符号复制/粘贴体验

可扩展性

  • 从 Microsoft.VisualStudio.Language.Client 程序集中删除 API
  • VS SDK 包含几个重大更改,Visual Studio 2019 扩展在 2022 年将无法使用。请参阅 VSSDK 文档 获取更多信息.
  • VS SDK 参考程序集不再安装到 VSSDK\VisualStudioIntegration\Common\Assemblies 文件夹。 如果您的构建依赖于这些程序集,请迁移您的项目以改用 NuGet 包。 对于离线场景:
    1. 保留一个组织内的 nuget 提要,从中恢复 nuget 包。
    2. 检查二进制文件。
  • 添加了 ILanguageClient 重大更改修复

云计算服务

  • 石青 将用于 Azure 存储的本地模拟,而不是旧的且不再积极开发的 Azure 存储模拟器。

Git 工具

帮助菜单

  • 在 17.0 期间,我们使用入门材料和有用的提示/技巧改造了帮助菜单。
  • 通过添加诸如访问开发人员社区、发行说明、Visual Studio 产品路线图和我们的社交媒体页面等内容,与我们的开发团队进行更多协作。

热重载体验

  • .NET 开发人员现在可以通过 Visual Studio 调试器使用热重载,而无需针对许多 .NET 6 应用程序类型的调试器
  • 使用 Visual Studio 调试器时,C++ 开发人员现在可以使用热重载

有关更多详细信息,请参阅上面的链接

智能代码

  • 整线完成 根据您当前的上下文预测您的下一段 C# 代码,并将其显示为光标右侧的内联建议。
  • 整线完成 现在 与最新版本的 JetBrains ReSharper 兼容. 请注意,不支持根据 ReSharpers 自定义完成列表项选择来更新行完成上下文 - 如果需要,ReSharper 用户可以选择使用 Visual Studio 原生 IntelliSense,如文档所述 此处

JavaScript / TypeScript

  • 我们发布了一种新的 JavaScript/TypeScript 项目类型,它使用附加工具构建独立的 JavaScript/TypeScript 项目。 您将能够使用计算机上安装的框架版本在 Visual Studio 中创建 Angular 和 React 项目。
  • JavaScript 和 TypeScript 测试现在可在 Visual Studio 测试资源管理器中使用
  • NPM GUI 可用,因此您现在可以像下载 Nuget 包一样下载 NPM 模块

.NET 6 开发工具包

  • .NET 6 SDK 包含在 Visual Studio 2022 中

.NET 生产力

  • 引入参数重构可以将新参数从方法实现移动到其调用者。
  • 跟踪数据流分析的价值源
  • 为重新分配的变量加下划线的选项
  • 在“生成覆盖”对话框中添加了搜索选项
  • XML tags now preserve whitespace and CDATA blocks
  • Find All References 窗口现在将对多目标项目进行分组
  • 重构以删除 Visual Basic 中的重复类型
  • Go to Implementation 将不再导航到具有同样被覆盖的抽象声明的成员。
  • 从解决方案资源管理器同步命名空间以匹配您的文件夹结构
  • 从解决方案资源管理器配置后台代码分析
  • 现在默认为新的 .NET 项目启用可空引用类型
  • C# 10.0 文件范围的命名空间重构
  • 导航到反编译的源现在默认开启
  • 重构以更喜欢空检查而不是类型检查
  • XML 注释现在将自动生成一个 <exception> 当方法显式抛出异常时标记
  • 现在默认启用继承保证金

编程语言

  • C#10

Razor (ASP.NET Core) 编辑器

  • 减少 UI 冻结并提高解决方案启动时的性能
  • 在某些解决方案中,语义着色速度提高了 2 倍
  • Razor 文件中的 F7(查看代码)支持
  • razor 文件中的代码段支持,它将使用单个选项卡完成代码段会话,而不是按 tab-tab
  • 当有嵌套的 HTML 和 Razor 组件时,@code 块中的格式更好
  • Razor 文件中的热重载支持
  • 性能改进
  • 格式和缩进增强
  • 新的 Razor 编辑器颜色
  • TagHelpers 现在已着色并具有快速信息分类支持和完成工具提示
  • Razor 构造的角撑高亮和导航
  • 评论现在具有自动完成、智能缩进、自动包含评论延续和块评论导航

远程测试

  •  在远程环境(如 linux 容器、WSL 和 SSH 连接)上启用运行测试的早期实验预览。

测试工具支持

  • 在测试资源管理器中显示
  • 从 17.0 开始的新版本测试平台将无法运行通用测试和有序测试。 这些特定功能仅作为早期版本的 MSTestv1 的一部分提供,不包含在 MSTestv2 中。 我们看到这些功能的使用率非常低,并且现在认为有序测试与最佳测试实践背道而驰。
  • 一些测试体验在 17.0 中将不可用,包括创建新的 TestSettings 文件和 TestSettings 编辑器。 测试运行仍然可以使用 TestSettings 文件,但是 TestSettings 已替换为 RunSettings,我们鼓励用户迁移改进的性能和功能。 查看更多.
  • Web 负载测试和编码的 UI 测试支持更新。 编码的 UI 测试 和 [Web 负载测试](基于云的负载测试服务生命周期结束 | Azure DevOps 博客 (microsoft.com) 已于 2019 年正式弃用。为了尽量减少对用户的影响,Visual Studio 2022 中对这些功能的支持最少。我们强烈鼓励用户放弃 Coded UI Test 和 Web Load Test。

UWP 扩展 SDK 的工具箱填充

  • UWP 扩展 SDK 现在需要通过在它们的 SdkManifest.xml 文件. 旧版本 Visual Studio 的行为没有改变; 他们将忽略清单中的控件列表,而是动态枚举 SDK 程序集中的控件类型。

受信任的地点

  • 我们改进了“信任设置”功能,现在可以在即将在 IDE 中打开不受信任的代码(例如文件、项目或文件夹)时显示警告。
  • 信任检查现在在解决方案文件夹级别完成
  • 用户创建的项目会自动添加到受信任列表中
  • 用户可以跳过对 Visual Studio 创建的临时位置的信任检查

更新、LTSC 和部署

  • 使用 Visual Studio 2022,将同时支持多个服务基线,这些基线将在秋季和春季发布。 有关详细信息,请参阅 Visual Studio 发布节奏文档 和 Visual Studio 2022 产品生命周期.
  • Visual Studio 2022 附带的新安装程序现在能够配置 Visual Studio 产品应从何处获取更新。 这允许您从不同的 LTSC 中选择更新,或者,如果您处于托管企业环境中,您可以配置客户端以从布局中获取其更新。 配置更新源的能力是 Visual Studio 安装程序附带的新功能,因此该行为也适用于 Visual Studio 的低级版本,例如 Visual Studio 2019。有关配置更新通道的更多信息,请参阅这 更新 Visual Studio 文档。 有关使这项工作适用于网络布局的更多信息,请参阅 Visual Studio 管理员指南.
  • IT 管理员现在可以报告问题 没有安装 Visual Studio。

用户界面

  • 默认图标已更新和刷新。

Web工具

  • 发布摘要页面现在具有在“托管”部分右上角的“...”菜单下启动/停止远程调试和分析的操作
  • 连接的服务页面现在具有启动存储资源管理器的操作
  • .NET 6 附带的“ASP.NET Core Empty”模板使用了新的 “最少的 API” 我们已经开始添加支持的范例
  • 石青 将用于 Azure 存储的本地模拟,而不是旧的且不再积极开发的 Azure 存储模拟器。
  • 您可以使用向 ASP.NET Core 应用程序添加身份验证 微软身份平台 通过 Visual Studio 中的连接服务体验。

.NET Framework 的 WPF XAML 设计器

  • 当前用于 .NET Framework 的 WPF XAML 设计器已替换为用于 .NET Framework 的新 WPF XAML 设计器,该设计器基于用于 .NET 的 WPF XAML 设计器 (.NET Core) 的相同体系结构。 Visual Studio 的体验看起来是一样的,但是第三方控件供应商需要支持新的可扩展性模型,因为之前的模型基于 .design.dll 和 Microsoft.Windows.Design.Extensibility 已弃用。 如果您已经创建了一个 .designtools.dll .NET (.NET Core) 的扩展,相同的扩展将适用于 .NET Framework 的新 WPF XAML 设计器。 请参考 移民文件 下面是有关如何迁移到新的可扩展性模型的更多信息。

XAML 热重载

  • XAML 热重载更改 – 对应用内工具栏和设置的微小更改

XAML 实时预览

  • XAML 实时预览现在可供 WPF、UWP、WinUI 和 Xamarin.Forms 开发人员在 Android Emulator 或作为 UWP 桌面应用程序中运行其应用程序。 Live Preview 捕获正在运行的应用程序用户界面并将其带入 Visual Studio 中的停靠窗口。 这使得使用 XAML Hot Reload 更容易更改应用程序,同时在 Visual Studio 本身中查看这些更改,而无需在运行的应用程序和 Visual Studio 之间来回切换,同时进行实时 XAML 代码更改。

有关更多信息,请单击上面的链接。

XAML 示例数据

  • 现在,在 WPF 应用程序的工具箱中创建 DataGrid、ListBox 和 ListView 控件时,将默认添加设计时示例数据。 要禁用此行为,请取消选中工具 -> 选项 -> XAML 设计器下的“在元素创建时自动添加示例数据”。”
  • 要了解有关示例数据的更多信息,请访问 示例数据文档.

改进的 XAML 绑定体验

  • 我们进行了一系列改进以使数据绑定变得快速和简单,例如从属性检查器快速访问数据绑定对话框、从快速操作设置绑定的能力、在数据绑定对话框中选择要绑定的属性的能力.

有关更多信息,请单击上面的链接。

Sumber: 微软

有关主题的更多信息: 微软, Visual Studio 2022中