visual?很多人不了解,今天趣百科为大家带来相关内容,以下是小编为大家带来的介绍。
此版本的Visual Studio 2022版本17.0预览版4可扩展性中的新功能摘要
API编程语言已从微软移除。visual studio.language.client程序集。
C#10C
受支持的开关下的libfuzzer -fsanitize=fuzzer。有关更多详细信息,请参见文档。C的热重装现在支持CMake和OpenFolder项目。实现了用于输出CMake项目的C 20模块依赖关系的标志/scanDependencies,如P1689r3中所述。这是支持使用CMake构建基于模块的项目的一步,我们正在努力在未来的版本中完成这一支持。我们改进了代码分析工具中的空指针解引用检测。我们已经将Visual Studio附带的CMake版本升级到3.21版。有关可用内容的详细信息,请参考CMake 3.21的发行说明。MSVC工具集现在默认使用调试记录中的SHA-256源哈希。以前,默认情况下,工具集使用MD5进行源散列。使用C工作负载的游戏开发,现在安装最新的支持Visual Studio 2022的虚幻引擎。.NET 生产力
同步命名空间以匹配解决方案资源管理器中的文件夹结构从解决方案资源管理器配置后台代码分析.NET 热重载
改善用户体验(带选项的新按钮),应用更改,保存和设置,支持热重载。NET MAUI应用(iOS、Android和WinUI)。ASP.NET方案的改进现在支持更多的编辑XAML 热重载.
改进了对XAML热过载的支持。NET毛伊岛应用程序,改善支持XAML 实时预览,WPF和WinUI应用程序使用XAML和。同一会话中的NET热重载。
添加了对的支持。网毛伊岛和Xamarin。表单应用程序(Android模拟器),增加了对WinUI 3和测试工具UWP应用程序的支持
在测试资源管理器中显示Web负载测试和代码的UI测试支持更新JavaScript/打字稿.
我们发布了一个新的JavaScript/TypeScript项目类型,它使用额外的工具来构建独立的JavaScript/TypeScript项目。可以使用NPM GUI,所以你现在可以像下载Nuget包一样下载NPM模块调试和诊断。
我们已经发布了一种新类型的断点,称为依赖断点,它允许您将一个断点配置为仅在第一次命中另一个断点时启用。我们向外部源节点添加了更多更新。现在,您可以看到子节点“没有源代码的模块”下的模块,并加载符号形式的解决方案资源管理器本身。本版Visual Studio 2022,版本17.0,预览版4,总结了通过添加安装路径解决的问题。NET 6 MAUI工作负载,以确保在静态变量初始化期间,在默认的AppDomain中初始化ATL字符串。发布包源映射将扩大客户对其软件供应链的控制。改进了已安装标签的警告图标提示中的漏洞、弃用和组合消息。请查看我们在此版本中的开发者社区修复的完整列表,以了解来自开发者社区的最高投票问题。
当std:c lastest用于平台工具集143时,C语法着色不起作用。在vs2022预览版3中找到不工作的文件中的分支后,Visual Studio不会重新加载所有更改的项目文件。激活语言服务器时出错。右击解决方案资源管理器中的任何项目并选择“签入”将会给出一条异常消息。无法签入更改。在生成过程中生成过多的生成日志输出(例如,诊断详细信息)时,Visual Studio UI没有响应。用C-Static link开发Linux是错误的。VS2022中的T4模板需要不兼容。使用C 20模块无法从不同模块获取模板专门化/重载“Live Share”会话保存文件会打开“另存为”对话框而不是直接保存文件。C Project无法在启动时重新加载项目外部的文件。使用函数指针编译不正确。返回到使用/许可-误诊与朋友的暧昧运营商调用(C2593)。升级到16.10后,热过载不适用于Xamarin。表格UWP/IOS。加载Entitlements.plist模板时出错。dllimport constexpr默认构造函数的智能感应错误系统找不到指定的文件(通过双击错误消息导航。)VS2022中不再内置C项目:找不到汇编“mscorlib . dll”VS 2022预览版2.1中的Razor编辑器。智能感知的速度慢。C 20和此版本的Visual Studio 2022版本17.0预览版4的新功能
增功能的详细信息可扩展性以下 API 将从Microsoft.VisualStudio.Language.Client程序集中删除:财产 ILanguageClientInitializationInfo.Result过时的中间层接口:ILanguageClientCompletionProviderILanguageClientDidChangeConfigurationProviderILanguageClientDidChangeProviderILanguageClientDidCloseProviderILanguageClientDidOpenProviderILanguageClientExecuteCommandProviderILanguageClientWorkspaceSymbolProvider编程语言C# 10
with在结构体 ( record struct Point(int X, int Y);, var newPoint = point with { X = 100 };)上记录结构体和表达式。全局使用指令:global using指令避免using在程序中的许多文件中重复相同的指令。改进的确定分配:确定分配和可空性分析更好地处理常见模式,例如dictionary?.TryGetValue(key, out value) == true.常量内插字符串:由常量组成的内插字符串本身就是常量。扩展属性模式:属性模式允许访问嵌套成员 ( if (e is MethodCallExpression { Method.Name: "MethodName" }))。密封记录 ToString:一个记录可以继承一个带有密封的基础记录ToString。增量源生成器:通过分解源生成管道和缓存中间结果来改善大型项目中的源生成体验。混合解构:解构赋值和解构声明可以混合在一起((existingLocal, var declaredLocal) = expression)。方法级 AsyncMethodBuilder:用于编译async方法的 AsyncMethodBuilder可以在本地覆盖。#line span 指令:允许像 Razor 这样的源生成器使用#line指定目标跨度 ( #line (startLine, startChar) - (endLine, endChar) charOffset "fileName") 的指令对线映射进行细粒度控制。Lambda 改进:允许在 lambda 上使用属性和返回类型;lambda 和方法组具有自然委托类型 ( var f = short () => 1;)。内插字符串处理程序:内插字符串处理程序类型允许在赋值和调用中有效地格式化内插字符串。文件范围的命名空间:具有单个命名空间的文件不需要额外的大括号或缩进 ( namespace X.Y.Z;)。无参数结构构造函数:支持结构类型的无参数构造函数和实例字段初始值设定项。CallerArgumentExpression:此属性允许捕获作为字符串传递给方法的表达式。有关更多详细信息,请参阅C# 语言功能状态和重大更改。
.NET 生产力在同步名称空间重构是在(右击)菜单现在可以在解决方案资源管理项目或文件夹,让您轻松同步命名空间来匹配您的文件夹结构。
后台代码分析配置现在可在解决方案资源管理器(右键单击)菜单中使用。右键单击解决方案资源管理器中的解决方案节点,然后选择分析和代码清理。接下来,选择设置分析范围以配置后台代码分析的范围。
.NET 热重载在此版本中,我们继续改进热重载体验,包括支持更多 .NET 框架和运行时场景、更多支持的编辑以及对用户体验的改进。
改善用户体验
Visual Studio 中面向 .NET 和 C++ 开发人员的热重载体验现在具有改进的工具栏按钮,具有更多功能和新的设置面板。
新的热重载按钮:这个新按钮有一个新图标,命令从“应用代码更改”重命名为“热重载”。轻松重启应用程序:如果需要通过重建应用粗鲁的编辑,无论您是使用调试器启动应用程序还是在没有调试器的情况下启动应用程序,您现在都可以轻松重启正在运行的应用程序。如果您有一个有效的 .NET 更改,但热重载不支持在运行时进行更新而无需重建,则可能会发生这种情况。保存时热重载:以前您只能在 ASP.NET 项目中应用保存时热重载更改。在此版本中,现在可以使用新的选择加入设置“文件保存时热重载”支持热重载的任何项目类型的热重载。启用后,所有项目类型都将在保存时应用更改。轻松设置访问:在此版本中,我们还添加了一个热重载设置面板,以便您在启用/禁用热重载时进行更多控制。您可以在 Visual Studio 的“选项 > .NET / C++ 热重载”中或通过单击设置通过热重载按钮下拉菜单访问这些设置。支持的平台 (.NET MAUI)
在此版本中,现在可以在 .NET MAUI 应用程序中使用 .NET 热重载体验。当您使用 Visual Studio 调试器将 .NET MAUI 应用程序作为 WinUI、.NET 6 iOS/tvOS 或 .NET 6 Android 应用程序运行时,并且当您处于打开解释器(默认情况下打开)的调试配置中时,此功能有效新模板)。此功能适用于 .NET MAUI 和 .NET MAUI Blazor 应用程序。
已知问题和限制:
在 Android 和 iOS/tvOS 场景中,当 Mono 是运行时,只能编辑方法主体并对这些方法进行更改。在 .NET 6 中,对于以 Mono 作为运行时的任何平台,这将是一个限制,并且在使用 CoreCLR 运行时时支持更多的编辑(例如:作为 WinUI 3 应用程序运行的 .NET MAUI 应用程序)。对于 .NET MAUI Blazor 应用程序,热重载不会自动刷新视图,并且 CSS 自动同步尚不可用。这些已知问题正在为未来的版本进行处理。改进了对 ASP.NET 方案的支持
在此版本中,我们现在为处理 ASP.NET Core 和 Blazor 等项目类型的 ASP.NET 开发人员提供其他功能。改进包括:
CSS 自动同步:现在可以在应用程序运行时更改 CSS 文件,并且在您键入时更改将立即应用于正在运行的应用程序CSHTML:编辑 Razor CSHTML 文件现在将支持更多类型的编辑浏览器刷新:编辑 razor 文件现在将在调试时自动刷新 Web 浏览器中的更改。这以前仅在没有调试器的情况下启动应用程序时可用注意:在使用热重载对 Razor 文件(.cshtml、.razor)应用更改时,有一个已知问题会导致工具错误并破坏应用程序功能。我们正在努力尽快解决这个问题。要解决此问题,请重新启动应用程序以应用 Razor 更改。
支持的编辑 (.NET)
现在可以使用热重载和编辑并继续机制对 C# 10 功能进行其他类型的编辑,这些新支持的编辑包括:
添加或更改全局 using 语句添加或更改文件范围的命名空间对 lambda 可能的编辑类型进行更多改进更改 lambda 表达式中的属性添加或更改具有无参数构造函数的结构此外,现在还可以在方法中重命名参数。
XAML 热重载改进了对 .NET MAUI 应用程序的 XAML 热重载支持
在此版本中,我们继续改进对 XAML 热重载的支持,同时从新的单一项目模板运行 .NET MAUI Android、iOS 和 WinUI 应用程序。在此版本中,现在可以进行以下类型的编辑:
更改动态和静态资源修改网格中项目的顺序将网格更改为 StackPanel制作新元素并分配它们注意:随着 .NET MAUI 朝着正式版本的方向发展,XAML 热重载团队正在努力帮助识别和修复平台内的问题,以帮助确保 XAML 热重载功能可靠地工作。目前,XAML 热重载机制的某些方面将无法正确应用,我们将继续对每个版本进行改进。我们强烈建议您向我们发送 VS 反馈,说明任何对您不利的情况,因为这极大地帮助我们构建了高质量的产品。
改进了对一起使用 XAML 和 .NET Hot Reload 的支持:
随着 .NET Hot Reload 的推出,我们随着时间的推移进行了一系列改进,以便在同一个调试会话中同时使用 XAML 和 .NET Hot Reload 技术时实现尽可能流畅的体验。
在此版本中,我们启用了以下场景:
对于 WPF 和 WinUI 3 应用程序
XAML 代码编辑器现在将正确显示由 IntelliSense 中的 .NET 热重载操作创建的新创建的控件类型和属性使用 .NET Hot Reload 绑定到新创建的属性现在将按预期工作。对于 WinUI,您现在还可以使用 x:Bind 绑定到新属性对于 WPF 应用程序
为使用 .NET Hot Reload 创建的事件处理程序添加新创建的方法现在将起作用为了帮助我们测试这些新功能,请确保在“选项 > 预览功能 > XAML IntelliSense 更新后 .NET 热重载”下打开预览标志。
注意:虽然如果首先使用 .NET 热重载应用类型,然后使用 XAML 热重载,则上述方案有效,但存在已知限制。例如,如果您将使用 XAML 热重载的新属性添加到尚未创建的属性,然后仅使用 .NET 热重载来创建它,则 XAML 更改将看不到新属性。我们已经意识到这个问题,并希望在未来改进它。
XAML 实时预览借助 XAML Live Preview,现在可以捕获正在运行的应用程序的屏幕并将其放入 Visual Studio 中的停靠窗口中,从而更轻松地使用 XAML 和 .NET 热重载来更改应用程序,并立即从右侧看到 UI 更改Visual Studio IDE。
在此版本中,我们将支持扩展到 WPF 之外,WPF 是第一个受支持的框架,现在包括:
WinUI 3 或通用 Windows 平台 (UWP) 应用.NET MAUI 在 Android 模拟器中运行或作为 WinUI 3 应用程序运行Xamarin.Forms 在 Android 模拟器中运行或作为 UWP 应用运行
仍然存在一些限制,例如 Xamarin.Forms 和 WinUI 平台中没有元素选择,并且无法通过 XAML Live Preview 与正在运行的应用程序进行交互。
测试工具在测试资源管理器中显示 (Ctrl+E,S):在测试资源管理器中显示是能够从光标在编辑器中的测试方法中的位置跳转到测试在测试资源管理器中的位置。这可能会让您想起与 Active Document 同步的类似功能,该功能可在解决方案资源管理器中突出显示您当前正在使用的文档。这是开发者社区中投票最多的项目之一,因此感谢所有投票并帮助我们优先考虑此功能的人!在测试资源管理器中显示也可从编辑器右键单击菜单、CodeLens 测试字形和解决方案资源管理器中的右键单击中获得。
Web 负载测试和编码的 UI 测试支持更新:Web 负载测试记录器现在在 Visual Studio 2022 预览版 4 中可用。编码的 UI 测试记录器不会包含在 Visual Studio 2022 中。您仍然可以运行编码的 UI 测试并通过在 Visual Studio 2022 中编写代码来创建新测试,但记录器依赖于无法移植的 32 位依赖项。您仍然可以并排安装 Visual Studio 2019 以使用编码的 UI 记录器。提醒一下,Web Load Test 和 Coded UI Test 已于 2019 年弃用,我们确实计划在可以最大程度地减少对用户的影响时将它们从产品中删除。我们强烈鼓励对 Web UI 测试感兴趣的用户采用新的跨平台和开源 Web 测试框架Playwright. 除了支持所有主要浏览器和更好地处理异步代码之外,Playwright 还内置了测试记录功能。JavaScript/打字稿我们发布了一种新的 JavaScript/TypeScript 项目类型,它使用附加工具构建独立的 JavaScript/TypeScript 项目。在此处阅读更多相关信息NPM GUI 可用,因此您现在可以像在新的 JavaScript/TypeScript 项目中下载 Nuget 包一样下载 NPM 模块
调试和诊断依赖断点
这是一个新的断点,允许用户配置一个断点,只有在第一次命中另一个断点时才启用。调试时,Visual Studio 调试器只会在命中先决条件断点时暂停依赖断点上的应用程序。您可以通过从设置窗口中启用“仅在命中跟随断点时启用”复选框并从下拉列表中选择您希望配置依赖断点的先决断点来将任何断点转换为依赖断点。
外部源节点更新
解决方案资源管理器中的外部源节点现在也支持 C++。此外,我们添加了一个新的子节点,它为您提供所有尚未加载符号的模块。
您还可以使用右键单击上下文菜单直接从解决方案资源管理器加载符号,以便模块可以出现在外部源节点中。外部源节点的文件现在也按字母顺序排序。
以上就是VS2022 预览版4 更新的全部内容。
最后附加几张安装的效果图: