微软发布 Visual Studio 2022 并进行多项新改进
12分钟读
更新
读者帮助支持 MSpoweruser。如果您通过我们的链接购买,我们可能会获得佣金。
阅读我们的披露页面,了解如何帮助 MSPoweruser 维持编辑团队 查看更多
微软今天宣布 Visual Studio 2022 全面上市。此 GA 版本的 Visual Studio 2022 附带上线许可证,用于生产使用。
Visual Studio 2022 的主要功能:
64 bit
- devenv.exe 现在只有 64 位
Azure 云服务
- 现在支持 Azure 云服务(经典)和 Azure 云服务(扩展支持)项目。
- 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 包。 对于离线场景:
- 保留一个组织内的 nuget 提要,从中恢复 nuget 包。
- 检查二进制文件。
- 添加了 ILanguageClient 重大更改修复
云计算服务
- 石青 将用于 Azure 存储的本地模拟,而不是旧的且不再积极开发的 Azure 存储模拟器。
Git 工具
- 多仓库支持 在预览标志下 适用于跨越不同存储库的任何解决方案(即项目托管在不同 Git 存储库中的解决方案)
- 发布到 Azure DevOps 现在完全支持创建 git 存储库体验
- 状态栏增强功能包括 从空 VS 查看和打开存储库的新功能 和 显示未拉取提交的计数
- Git 更改窗口上的溢出菜单现在可用于具有额外 git 操作的本地存储库
- 包含添加/删除行数和可发现配置选项的统一差异工具栏
- 提交详细信息增强功能,包括响应速度更快且用户友好的 UI
帮助菜单
- 在 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 中
- 引入参数重构可以将新参数从方法实现移动到其调用者。
- 跟踪数据流分析的价值源
- 为重新分配的变量加下划线的选项
- 在“生成覆盖”对话框中添加了搜索选项
- XML tags now preserve whitespace and CDATA blocks
- Find All References 窗口现在将对多目标项目进行分组
- 重构以删除 Visual Basic 中的重复类型
- Go to Implementation 将不再导航到具有同样被覆盖的抽象声明的成员。
- 从解决方案资源管理器同步命名空间以匹配您的文件夹结构
- 从解决方案资源管理器配置后台代码分析
- 现在默认为新的 .NET 项目启用可空引用类型
- C# 10.0 文件范围的命名空间重构
- 导航到反编译的源现在默认开启
- 重构以更喜欢空检查而不是类型检查
- XML 注释现在将自动生成一个
<exception>
当方法显式抛出异常时标记- 现在默认启用继承保证金
- C#10
- 减少 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 实时预览现在可供 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 设计器下的“在元素创建时自动添加示例数据”。”
- 要了解有关示例数据的更多信息,请访问 示例数据文档.
- 我们进行了一系列改进以使数据绑定变得快速和简单,例如从属性检查器快速访问数据绑定对话框、从快速操作设置绑定的能力、在数据绑定对话框中选择要绑定的属性的能力.
有关更多信息,请单击上面的链接。
Sumber: 微软