Visual Studio 2019 v16.10中有什么新功能?
我们很高兴地宣布发布Visual Studio 2019 v16.10 GA和v16.11预览版1。此版本使我们的开发人员生产力和便利性主题对Visual Studio用户通用!我们添加了C++20功能,改进了Git集成,改进了评测工具,以及一系列提高生产力的功能。
下载最新的Visual Studio版本尝试16.10中的新功能。一如既往,我们喜欢您通过我们的开发人员社区。
C类++
我们的编译器和STL现在已经完成了最新可用的C++20标准的功能!16.10提供了一些令人期待的功能:日历、时区和<format>。这些功能在/std:c++最新开关下都可用。/std:c++20开关尚不可用,因为一些功能预计将由缺陷报告(ISO c++20错误修复)以与ABI不兼容的方式进行修改(请参阅Microsoft/STL第1814期更多详细信息)。
这个<格式>是一种基于fmtlib公司。它为iostreams和printf系列提供了一种快速、安全的替代方案:
自动版本=20;std::format(“STL现在是C++{}功能完成!”,版本);
日历和时区是现有的<计时>设施。它们提供了以类型安全和时区感知方式表示和操作日期和时间的功能。
标准::chrono::year_month_day world_bee_day=2021年5月20日std::format(“%F上的嗡嗡声”,world_bee_day);
此外,我们还改进了模块、范围和概念的IntelliSense体验。Go to definition既适用于模块本身,也适用于从模块导入的定义。众所周知,编译器很难处理范围,但IntelliSense现在可以为您完成这些范围。您还将完成概念中定义的名称。
除了x64之外,x86和ARM64还支持LLVM OpenMP运行时。传递/openmp:llvm开关以将其作为目标。
如果您想使用C++20风格的协同程序,但目标是C++11或C++14,那么现在可以使用/await:strict开关来获得所需的行为。
我们改进了协同程序的调试和可视化。特别是,std::coroutine_handle<T>的可视化现在显示了原始的协同程序函数名和签名以及当前的挂起点。
如果您正在使用我们的CMake支持,那么您现在可以使用CMake预设指定配置,而不是CMakeSettings.json。此格式在Visual Studio、Visual Studio代码以及支持此新标准的任何其他工具中是一致的。
Git生产力
状态栏有一个新的分支选择器,允许您筛选本地和远程分支,并从右键单击上下文菜单中执行常见操作。
当您单选分支时,状态栏中的分支选择器以及Git Changes窗口现在会检出本地或远程分支。
从状态栏存储库选择器中筛选本地Git存储库并在它们之间切换。右键单击的上下文菜单允许您从列表中删除项目。
通过状态栏中的未按下提交按钮和Git菜单中的同步命令,将分支与远程同步(先拉后推)。
即使没有传入的提交,也可以从Git Repository窗口历史窗格中提取。从状态栏或键盘快捷键Ctrl+0+Y访问这些部分。
在Git Repository窗口中选择提交以查看其详细信息和文件更改的比较,而无需导航到其他窗口。选择两个提交并右键单击以在同一窗口中进行比较。将详细信息弹出到自己的窗口中,以便全屏查看,深入了解更改。
查看文件中的删除和插入次数,并更改比较的布局。
现在,您可以从Git Changes窗口执行更多操作。工具栏图标是可自定义的,您可以选择要显示的操作。您可以从溢出菜单与多个遥控器同步。您可以在浏览器中打开存储库的远程网页。
打开Azure DevOps Git存储库时,自动重新连接或提示建立初始Azure DevOps连接。这允许访问打开的存储库的工作项和生成。
解决重设基或合并冲突时,合并编辑器和上下文菜单将显示当前和传入分支的分支名称。这修复了混淆源和目标术语问题。
我们添加了一些菜单项,这些菜单项是PR创建和列表页面的快捷方式,使创建和查看拉取请求更加容易。菜单是动态的,取决于您的存储库是在GitHub上还是在Azure DevOps上。
Git设置
我们在中添加了一些新选项Git>设置管理如何打开和切换存储库。现在,您可以在切换到另一个存储库时保持当前解决方案处于打开状态
您还可以选择在打开存储库时不加载存储库根文件夹。这将使解决方案资源管理器保持为空,并且您将无法获得解决方案列表。
但是,如果您选择打开根文件夹,VisualStudio将不再自动加载解决方案。相反,您将在列表中看到可用的文件夹视图和解决方案,您可以从中进行选择。您可以通过Git>设置通过切换复选框。
您可以通过双击分支名称,从Git Repository窗口中选择签出分支。如果要更改此行为,请在中切换复选框Git>设置。
Performance Profiler的启动页面现在有一些链接,可以帮助用户访问在线文档,详细介绍如何使用这些工具以及我们的工具箱视频系列。您可以使用这些工具了解更多关于这些工具的信息,并了解如何更好地识别代码中的优化区域并验证您的更改。
这个。性能档案器中的NET对象分配工具是第一个过渡到我们新的分析引擎的工具,该分析引擎速度显著更快,并提供更多功能。收集后,您可以更快地获得结果并构建调用树(增加约40%)。我们现在还支持SourceLink下拉源代码,这样您就可以准确地看到代码的分配位置,即使它不在您的代码中。
这需要相应代码的符号,可以从Microsoft Symbol Server中下载,请转到调试>选项>符号以启用此功能。
容器
此版本为Docker容器工具的用户提供了一些激动人心的功能。现在,您可以运行撰写文件中定义的任何服务组合,并在“容器”窗口中享受改进的容器和图像管理。有关更多信息,请参阅我们的容器的新功能发布在16.10预览3博客中。
.NET生产力
来自我们的。NET团队,我们为您带来了一些功能,以帮助您不断提高生产力。
我们通过删除未使用的引用命令。此命令允许您清理未使用的项目引用和NuGet包。默认情况下,此选项处于关闭状态,但您可以在菜单下启用它工具>选项>文本编辑器>C#>高级。选择删除未使用的引用解决方案资源管理器中的命令(实验)。启用该选项后删除未使用的引用命令将出现在项目名称或依赖项节点的右键单击菜单中。
当您选择删除未使用的引用,将打开一个对话框。然后,您可以查看将要删除的所有引用,但也可以选择保留任何希望保留的引用。
智能感知完成
当类型已知时,即使未输入枚举值,也会为枚举值提供额外的IntelliSense完成。我们还扩展了此选项,以包括强制转换、索引器和运算符的补全。
现在有一个完成选项,可以在编写方法调用时自动插入参数。
默认情况下,此功能处于禁用状态,因此您需要在中启用它工具>选项>文本编辑器>C#>智能感知并选择用Tab键两次插入参数(实验)。
要使用此功能,请开始编写方法调用并按tab键两次(tab+tab). 注意,方法调用包含基于方法默认值的参数。使用参数信息循环查看要通过按向上和向下箭头键插入的参数列表。开始键入参数以显示IntelliSense完成列表,然后键入分号,这将提交参数并在方法调用的末尾添加分号。
可视化和导航继承链
现在有一个用于导航和检查继承链的可视化表示。
默认情况下,此选项处于禁用状态,因此您需要在中启用它工具>选项>文本编辑器>C#>高级并选择显示继承边距。启用继承边距将在边距中添加新图标,表示代码的实现和覆盖。
单击继承边距图标以显示可以导航到的继承选项。
测试浏览器辅助功能改进
我们对测试资源管理器进行了几次更新,提高了测试详细信息窗格和日志文件的键盘可访问性和可用性。有关详细信息,请参阅测试体验可访问性改进在16.10预览3博客中。
我们重构了Visual Studio 16.10的行为服务。这导致了的新WinForms设计器的性能显著提高。NET核心、5和6。这还修复了与选择、拖放多个控件相关的许多问题。
我们不断改进现有功能并添加新功能,以使您在开发XAML UI时更加高效。
XAML设计器快速操作
现在,您可以使用为选定控件显示的灯泡后面的弹出菜单快速更改控件的属性。
当您在XAML设计器中选择控件时,您将看到一个灯泡。单击它后,将显示此特定控件最常用属性的列表,从而节省您在属性资源管理器中查找这些属性或在XAML编辑器中键入代码的时间。
支持的控件:
- 工作流程图:边框、按钮、画布、复选框、组合框、网格、图像、标签、列表框、列表视图、堆栈面板、文本块、文本框。
- 超宽带:边框、按钮、画布、复选框、组合框、网格、超链接按钮、图像、列表框、列表视图、导航视图、单选按钮、滑块、堆栈面板、文本块、文本框。
此功能可用于UWP、WPF Core和WPF Framework(启用了“用于.NET Framework的新WPF XAML设计器”功能标记)。您还可以创建自己的操作,请参见XAML设计器扩展GitHub了解更多信息。
XAML示例数据
通常,要查看控件与数据值的关系,必须实现所有数据绑定,用值填充数据库,并且需要运行应用程序。使用此功能,您可以立即在设计器中看到控件与“虚拟”数据的外观。对于那组d: ItemSource=“{d:SampleData}”
在ListBox、ListView或DataGrid上。控件将自动填充与DataTemplates和BindingPaths匹配的“虚拟”数据。此数据显示在设计器中,不会影响源代码。
您可以使用ItemCount属性更改生成的项目数,例如:d: ItemSource=“{d:SampleData ItemCount=3}”
,默认设置为5。
Visual Studio 2019 v16.11预览版1的新增功能
.NET热重新加载
在这个版本中,我们很高兴能够发布新的热重新加载编辑WPF、Windows窗体、ASP等应用程序的代码文件时的用户体验。NET Core、控制台等。使用Hot Reload,您现在可以在应用程序运行时修改应用程序托管的源代码,而无需暂停执行或使用断点。相反,只需进行支持的更改,并使用工具栏中新的“应用代码更改”按钮立即应用它们。
在这次Visual Studio更新中,当在调试器(F5)下运行应用程序时,可以获得这种新体验,它由编辑并继续(EnC)机制。在支持EnC的任何位置使用热重新加载和任何其他调试器功能。NET Hot Reload还与XAML Hot Repoad一起工作,使您可以在桌面应用程序(如WPF或WinUI)中进行UI和代码隐藏更改。
EnC和Hot Reload都有相同的限制,因此并非所有类型的编辑都受支持。可以找到支持或不支持的内容的完整列表在我们的文档中。
对于从开始的某些场景,“dotnet watch”CLI工具现在也提供了热重新加载。NET 6预览版3或更高版本,有关更多详细信息,请参阅。NET发布博客。
这只是我们旅程的开始,我们将在Visual Studio 2022和的未来版本中进一步改进这种体验。NET 6+,例如在不使用调试器(CTRL-F5)的情况下启动应用程序时,可以从Visual Studio使用热重新加载,减少不支持的编辑次数,支持编辑Razor页面,支持使用Blazor和的热重新加载。NET MAUI应用程序等。如果您想了解有关我们对这项技术的愿景的更多详细信息,请参阅我们在上的详细博客文章。NET博客。
我们真的希望您在应用程序中尝试热重新加载,并通过Visual Studio反馈功能提供反馈。
.NET MAUI
Visual Studio 16.11预览版1添加了对的支持。NET MAUI。NET多平台应用程序UI(MAUI)将于今年11月正式发布,它是为iOS、Android、Windows和Mac编写跨平台应用程序的最佳方式。NET6预览版4今天发布了新版本。NET MAUI功能,包括单个项目的改进、针对所有支持平台的能力,以及Blazor混合桌面支持!Visual Studio 16.11 p1允许您打开、构建和调试。NET MAUI应用程序,并为新的单项目体系结构添加功能。此外,您可以使用新建项目配置向导创建新的。NET MAUI应用程序!
使用。NET MAUI和Visual Studio,您的解决方案中只需要一个项目即可面向移动和桌面。图像、字体、应用程序信息甚至闪屏都可以在一个项目中定义,并在编译时部署到每个平台。使用多目标,您可以在任何支持的平台上进行调试,而无需为不同的目标框架维护不同的项目。了解更多新信息。NET MAUI单项目架构,您可以观看2021年5月Xamarin社区单口相声!
尝试一下。NET MAUI,下载Visual Studio 16.11并按照上的说明。净MAUI样本回购以安装。NET 6预览SDK!
有关更多信息,请参见。NET MAUI预览4。
要体验Visual Studio 2019提供的最新功能,今天下载预览.别忘了报告问题或向我们反馈开发人员社区!
帖子Visual Studio 2019 v16.10和v16.11预览版1现已推出!首次出现于Visual Studio博客。
]]>