C++一致性-Visual Studio博客 https://devblogs.microsoft.com/visualstudio/tag/c-c-operformance/ Visual Studio工程团队产品洞察力的官方来源 2021年5月25日星期二15:20:45+0000 英语-美国 每小时 1 https://devblogs.microsoft.com/visualstudio/wp-content/uploads/sites/4/2018/10/microsoft-Favicon.png C++一致性-Visual Studio博客 https://devblogs.microsoft.com/visualstudio/tag/c-c-operformance/ 32 32 Visual Studio 2019 v16.10和v16.11预览版1今日发布! https://devblogs.microsoft.com/visualstudio/visual-studio-2019-v16-10-and-v16-11-review-1-每日可用/ https://devblogs.microsoft.com/visualstudio/visual-studio-2019-v16-10-and-v16-11-preview-1-are-available-today/#评论 2021年5月25日星期二14:55:03+0000 https://devblogs.microsoft.com/visualstudio/?p=232580 我们很高兴地宣布发布Visual Studio 2019 v16.10 GA和v16.11预览版1。此版本使我们的开发人员生产力和便利性主题对Visual Studio用户通用!我们添加了C++20特性、改进的Git集成、改进的分析工具,以及一系列提高生产力的特性。

帖子Visual Studio 2019 v16.10和v16.11预览版1现已推出!首次出现于Visual Studio博客

]]>
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现在可以为您完成这些范围。您还将完成概念中定义的名称。

Visual Studio现在已完成Ranges。
Visual Studio现在已完成Ranges。

除了x64之外,x86和ARM64还支持LLVM OpenMP运行时。传递/openmp:llvm开关以将其作为目标。

如果您想使用C++20风格的协同程序,但目标是C++11或C++14,那么现在可以使用/await:strict开关来获得所需的行为。

我们改进了协同程序的调试和可视化。特别是,std::coroutine_handle<T>的可视化现在显示了原始的协同程序函数名和签名以及当前的挂起点。

Coroutine调试和可视化得到了改进。
协同调试和可视化得到了改进。

如果您正在使用我们的CMake支持,那么您现在可以使用CMake预设指定配置,而不是CMakeSettings.json。此格式在Visual Studio、Visual Studio代码以及支持此新标准的任何其他工具中是一致的。

Git生产力

状态栏有一个新的分支选择器,允许您筛选本地和远程分支,并从右键单击上下文菜单中执行常见操作。

状态栏中的分支选择器。
状态栏中的分支选择器。

当您单选分支时,状态栏中的分支选择器以及Git Changes窗口现在会检出本地或远程分支。

左键单击以签出分支,右键单击以执行其他操作。
左键单击以签出分支,右键单击以执行其他操作。

从状态栏存储库选择器中筛选本地Git存储库并在它们之间切换。右键单击的上下文菜单允许您从列表中删除项目。

通过上下文菜单从存储库选择器列表中删除项目。
通过上下文菜单从存储库选择器列表中删除项目。

通过状态栏中的未按下提交按钮和Git菜单中的同步命令,将分支与远程同步(先拉后推)。

状态栏中的同步按钮。
状态栏中的同步按钮。

即使没有传入的提交,也可以从Git Repository窗口历史窗格中提取。从状态栏或键盘快捷键Ctrl+0+Y访问这些部分。

Git Repository窗口中的传入部分,带有用于提取和拉取按钮的标注。
Git Repository窗口中的传入部分,带有用于提取和拉取按钮的标注。

在Git Repository窗口中选择提交以查看其详细信息和文件更改的比较,而无需导航到其他窗口。选择两个提交并右键单击以在同一窗口中进行比较。将详细信息弹出到自己的窗口中,以便全屏查看,深入了解更改。

在Git Repository窗口中嵌入提交详细信息和文件比较。
在Git Repository窗口中嵌入提交详细信息和文件比较。

查看文件中的删除和插入次数,并更改比较的布局。

弹出多个提交窗口。
弹出多个提交窗口。

现在,您可以从Git Changes窗口执行更多操作。工具栏图标是可自定义的,您可以选择要显示的操作。您可以从溢出菜单与多个遥控器同步。您可以在浏览器中打开存储库的远程网页。

Git更改溢出菜单,标注为“同步”、在浏览器中打开以及工具栏操作。
Git更改溢出菜单,标注为“同步”、在浏览器中打开以及工具栏操作。

打开Azure DevOps Git存储库时,自动重新连接或提示建立初始Azure DevOps连接。这允许访问打开的存储库的工作项和生成。

缺失时提示Azure DevOps初始连接的信息栏
缺少Azure DevOps初始连接时提示的信息栏

解决重设基或合并冲突时,合并编辑器和上下文菜单将显示当前和传入分支的分支名称。这修复了混淆源和目标术语问题。

解决冲突时的上下文菜单显示分支名称
解决冲突时的上下文菜单显示分支名称

 

Rebase and Merge编辑器在标题中显示分支名称
Rebase and Merge编辑器在标题中显示分支名称

我们添加了一些菜单项,这些菜单项是PR创建和列表页面的快捷方式,使创建和查看拉取请求更加容易。菜单是动态的,取决于您的存储库是在GitHub上还是在Azure DevOps上。

从Git菜单创建PR并在网上查看PR列表
从Git菜单创建PR并在网上查看PR列表

Git设置

我们在中添加了一些新选项Git>设置管理如何打开和切换存储库。现在,您可以在切换到另一个存储库时保持当前解决方案处于打开状态

保持当前解决方案打开的设置
保持当前解决方案打开的设置

您还可以选择在打开存储库时不加载存储库根文件夹。这将使解决方案资源管理器保持为空,并且您将无法获得解决方案列表。

打开文件夹的设置
打开文件夹的设置

但是,如果您选择打开根文件夹,VisualStudio将不再自动加载解决方案。相反,您将在列表中看到可用的文件夹视图和解决方案,您可以从中进行选择。您可以通过Git>设置通过切换复选框。

设置以切换解决方案资源管理器的自动导航
设置以切换解决方案资源管理器的自动导航

您可以通过双击分支名称,从Git Repository窗口中选择签出分支。如果要更改此行为,请在中切换复选框Git>设置

用于切换自动登录加载和分支检出的设置。
用于切换自动登录加载和分支检出的设置。

性能剖析器

Performance Profiler的启动页面现在有一些链接,可以帮助用户访问在线文档,详细介绍如何使用这些工具以及我们的工具箱视频系列。您可以使用这些工具了解更多关于这些工具的信息,并了解如何更好地识别代码中的优化区域并验证您的更改。

图形用户界面、文本、应用程序、电子邮件描述自动生成
图形用户界面、文本、应用程序、电子邮件描述自动生成

这个。性能档案器中的NET对象分配工具是第一个过渡到我们新的分析引擎的工具,该分析引擎速度显著更快,并提供更多功能。收集后,您可以更快地获得结果并构建调用树(增加约40%)。我们现在还支持SourceLink下拉源代码,这样您就可以准确地看到代码的分配位置,即使它不在您的代码中。

图形用户界面描述自动生成
图形用户界面描述自动生成

这需要相应代码的符号,可以从Microsoft Symbol Server中下载,请转到调试>选项>符号以启用此功能。

图形用户界面、文本、应用程序描述自动生成
图形用户界面、文本、应用程序描述自动生成

容器

此版本为Docker容器工具的用户提供了一些激动人心的功能。现在,您可以运行撰写文件中定义的任何服务组合,并在“容器”窗口中享受改进的容器和图像管理。有关更多信息,请参阅我们的容器的新功能发布在16.10预览3博客中。

.NET生产力

来自我们的。NET团队,我们为您带来了一些功能,以帮助您不断提高生产力。

我们通过删除未使用的引用命令。此命令允许您清理未使用的项目引用和NuGet包。默认情况下,此选项处于关闭状态,但您可以在菜单下启用它工具>选项>文本编辑器>C#>高级。选择删除未使用的引用解决方案资源管理器中的命令(实验)。启用该选项后删除未使用的引用命令将出现在项目名称或依赖项节点的右键单击菜单中。

删除解决方案资源管理器中未使用的引用
删除解决方案资源管理器中未使用的引用

“删除未使用的引用”对话框。
“删除未使用的引用”对话框。

当您选择删除未使用的引用,将打开一个对话框。然后,您可以查看将要删除的所有引用,但也可以选择保留任何希望保留的引用。

智能感知完成

当类型已知时,即使未输入枚举值,也会为枚举值提供额外的IntelliSense完成。我们还扩展了此选项,以包括强制转换、索引器和运算符的补全。

枚举的IntelliSense完成。
枚举的IntelliSense完成。

现在有一个完成选项,可以在编写方法调用时自动插入参数。

编写方法调用时自动插入参数。
编写方法调用时自动插入参数。

默认情况下,此功能处于禁用状态,因此您需要在中启用它工具>选项>文本编辑器>C#>智能感知并选择用Tab键两次插入参数(实验)

要使用此功能,请开始编写方法调用并按tab键两次(tab+tab). 注意,方法调用包含基于方法默认值的参数。使用参数信息循环查看要通过按向上和向下箭头键插入的参数列表。开始键入参数以显示IntelliSense完成列表,然后键入分号,这将提交参数并在方法调用的末尾添加分号。

可视化和导航继承链

现在有一个用于导航和检查继承链的可视化表示。

导航继承链的可视化指示器。
导航继承链的可视化指示器。

默认情况下,此选项处于禁用状态,因此您需要在中启用它工具>选项>文本编辑器>C#>高级并选择显示继承边距。启用继承边距将在边距中添加新图标,表示代码的实现和覆盖。

单击继承边距图标以显示可以导航到的继承选项。

通过单击边距图标导航继承链。
通过单击边距图标导航继承链。

测试浏览器辅助功能改进

我们对测试资源管理器进行了几次更新,提高了测试详细信息窗格和日志文件的键盘可访问性和可用性。有关详细信息,请参阅测试体验可访问性改进在16.10预览3博客中。

WinForms更新

我们重构了Visual Studio 16.10的行为服务。这导致了的新WinForms设计器的性能显著提高。NET核心、5和6。这还修复了与选择、拖放多个控件相关的许多问题。

XAML工具更新

我们不断改进现有功能并添加新功能,以使您在开发XAML UI时更加高效。

XAML设计器快速操作

现在,您可以使用为选定控件显示的灯泡后面的弹出菜单快速更改控件的属性。

Xaml设计器快速操作
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,您现在可以在应用程序运行时修改应用程序托管的源代码,而无需暂停执行或使用断点。相反,只需进行支持的更改,并使用工具栏中新的“应用代码更改”按钮立即应用它们。

进行更改并热重新加载WPF应用程序。
进行更改并热重新加载WPF应用程序。以全尺寸查看。

在这次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演示应用程序WeatherTwentyOne
.NET MAUI演示应用WeatherTwentyOne

使用。NET MAUI和Visual Studio,您的解决方案中只需要一个项目即可面向移动和桌面。图像、字体、应用程序信息甚至闪屏都可以在一个项目中定义,并在编译时部署到每个平台。使用多目标,您可以在任何支持的平台上进行调试,而无需为不同的目标框架维护不同的项目。了解更多新信息。NET MAUI单项目架构,您可以观看2021年5月Xamarin社区单口相声

.NET MAUI单项目体系结构
将一个项目中的Android、iOS、Windows和Mac作为目标。NET MAUI的单一项目架构。

尝试一下。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博客

]]>
https://devblogs.microsoft.com/visualstudio/visual-studio-2019-v16-10和v16-11-preview-1-are-available-today/feed/ 33
Visual Studio 2019 v16.10预览版2今日发布 https://devblogs.microsoft.com/visualstudio/visual-studio-2019-v16-10-preview-2/ https://devblogs.microsoft.com/visualstudio/visual-studio-2019-v16-10-preview-2/#评论 2021年4月14日,星期三17:15:58+0000 https://devblogs.microsoft.com/visualstudio/?p=232075 我们很高兴地宣布Visual Studio v16.10预览版2的发布。此版本延续了开发人员生产力和便利性的主题。我们为测试、Docker和Git集成添加了C++20范围、IntelliSense补全和新功能!

帖子Visual Studio 2019 v16.10预览版2今日发布首次出现于Visual Studio博客

]]>
我们很高兴地宣布Visual Studio v16.10预览版2的发布。此版本延续了开发人员生产力和便利性的主题。我们添加了C++20范围、IntelliSense补全、用于检查继承链的边距图标,以及用于测试的新功能、Docker工具增强和Git集成!

下载最新的Visual Studio预览版尝试16.10中的新功能。一如既往,我们喜欢您通过我们的开发人员社区

C的新功能++

我们继续添加了C++20一致性功能,以及对CMake预设文件的支持,并改进了远程连接的安全性。

在C++20中使用范围

我们很高兴地宣布我们的C++20范围实现现在功能已完成。使用编译/标准:c++最新如果你想试试。

使用CMake预设

Visual Studio现在支持CMakePresets.json文件作为CMakeSettings.json的常用替代文件。

CMake 3.19和3.20增加了对CMakePresets.json(CMake预设.json),它允许您指定通用的配置、构建和测试选项,并与其他人共享这些选项。使用相同的CMakePresets.json文件在Visual Studio、Visual Studio Code中以及Windows、Linux和macOS上的CLI中配置和生成CMake。下面屏幕截图中的三个下拉菜单指示活动的目标系统,配置预设、和生成预设

CMakePresets下拉屏幕截图
在Visual Studio中使用CMakePresets.json文件,并在下拉菜单中查看“目标系统”、“配置预设”和“生成预设”。

外部收割台的自定义警告级别

对于不属于项目的头,编译器和代码分析警告会令人沮丧。为了帮助实现这一点,我们很容易标记项目外部的标题。外部标头可以有自己的编译器警告级别、代码分析和模板诊断设置。您可以为项目代码选择更严格的设置,以确保代码质量,而不会因无法控制的标头警告而陷入困境。

自定义外部标题分析
自定义外部标头的代码分析。

安全远程连接

通过添加接受或拒绝服务器提供的主机密钥指纹的提示,我们使创建远程连接更加安全。如果您以前使用过OpenSSH命令行客户机或PuTTY,您可能会对此很熟悉。

的新功能。净值

IntelliSense有几个新的补全功能,可以帮助自动化常见的工作流任务。

铸件、索引器和操作员的完工

IntelliSense现在为强制转换、索引器和运算符提供补全功能。在标准完成列表中查找这些新选项。

IntelliSense强制转换、索引器和运算符完成
IntelliSense现在为强制转换、索引器和运算符提供了补全功能。

自动插入方法调用参数

现在有一个完成选项,可以在编写方法调用时自动插入参数。

IntelliSense参数插入
IntelliSense现在提供参数插入完成。

此功能默认情况下处于关闭状态,因此您需要在“工具”>“选项”>“文本编辑器”>“C#”>“IntelliSense”中启用它,然后选择Tab键两次以插入参数(实验)

要使用此功能,请开始编写方法调用并按tab键两次(tab+tab). 注意,方法调用包含基于方法默认值的参数。使用参数信息循环查看要通过按向上和向下箭头键插入的参数列表。开始键入参数以显示IntelliSense完成列表,然后键入分号,这将提交参数并在方法调用的末尾添加分号。

EditorConfig文件的用户界面

编辑器配置现在有了一个用户界面。

EditorConfig文件的用户界面
使用用户界面更新.editorconfig文件。

打开任意一个。解决方案中的NET EditorConfig文件。请注意,新UI将自动打开并显示C#和Visual Basic的代码样式和代码质量配置选项。

可视化继承链

现在有一个用于导航和检查继承链的可视化表示。

继承链可视化
可视化继承链,而不离开当前代码。

默认情况下,此选项处于禁用状态,因此您需要在“工具”>“选项”>“文本编辑器”>“C#”>“高级”中启用它,然后选择显示继承边距。启用继承边距将在边距中添加新图标,表示代码的实现和覆盖。

单击继承边距图标以显示可以导航到的继承选项。

继承链导航
使用边距中的图标导航继承链。

容器的新功能

此版本为Docker容器工具的用户提供了一些激动人心的功能。现在,您可以运行撰写文件中定义的任何服务组合,并在“容器”窗口中享受改进的容器和图像管理。

运行撰写文件中定义的启动服务

我们听取了您的反馈,现在我们在Visual Studio中的Docker Compose工具提供了运行Compose文件中定义的任何服务组合的能力。打开Debug下拉菜单或右键单击docker-compose项目并选择管理Docker Compose启动设置开始吧。

使用新菜单选项管理Docker Compose启动设置。
使用新菜单选项管理Docker Compose启动设置。

该工具将查找Compose文件中定义的所有服务,并显示一个对话框,您可以在其中选择启动时启动的服务。创建Launch Profile时,您可以选择从Docker Compose配置文件声明,或单独选择要启动的服务。

单独选择要启动的服务。
单独选择要启动的服务。

任何启动配置文件都可以从Visual Studio中的调试下拉列表中保存和运行。这意味着您可以创建多个选项来启动应用程序的服务!

自定义启动配置文件下拉菜单

与容器和图像的高级交互

在Preview 2中,我们向Containers工具窗口添加了许多新功能。我们使容器和图像的查看和交互变得更容易。在Visual Studio中导航到“查看”>“其他窗口”>“容器”以打开“容器”工具窗口并尝试新功能!

容器现在按Compose项目分组,这使得识别与应用程序关联的容器更加容易。我们还在Containers和Images中添加了Labels选项卡,以便您可以查看在开发过程中使用的标签。

在标签选项卡中查看容器标签。
在“标签”选项卡中查看容器标签。

我们的新卷选项卡允许您查看正在运行的容器的卷,甚至可以在VisualStudio中打开文件。

在“卷”选项卡中查看和访问卷文件。
在“卷”选项卡中查看和访问卷文件。

最后,Containers工具窗口还支持标记图像!右键单击图像并选择标签。

在“容器”工具窗口中标记图像。
在“容器”工具窗口中标记图像。

 

测试体验可访问性改进

我们进行了几次更新,以提高测试资源管理器中测试详细信息窗格和日志文件的可用性和键盘可访问性。

在测试资源管理器中查看控制台日志

慰问。WriteLine消息现在显示在测试资源管理器中。

慰问。WriteLine现在显示在测试资源管理器中。
慰问。WriteLine现在显示在测试资源管理器中。

输出在测试详细信息摘要窗格中显示为可折叠的部分。长输出被截断,可以选择在单独的窗口中打开日志。堆栈跟踪被截断为20帧,对于长跟踪,只显示前10帧和最后10帧。截断设计的一个重要部分重点是在测试运行具有较大输出时减少VS冻结。具有较大输出的测试将不再阻止UI线程。

测试输出现在可以保留标记,以便可以从日志文件中导航超链接和堆栈跟踪链接。这些链接现在也对键盘友好。

超链接和堆叠竞速链接现在可以导航并且对键盘友好。
超链接和堆栈跟踪链接现在可导航且键盘友好。

自动创建日志文件

当输出超过300个字符时,或者如果测试结果附加了10个以上的文件,则为单个测试结果创建日志文件。日志文件现在在预览中打开,因此更容易管理选项卡。测试资源管理器和日志文件都支持Ctrl-PgUp/PgDn用于导航光标和Shift+Ctrl页向上/PgDn供选择。

带有预览和链接的自动日志文件。
通过链接、预览和选择自动创建日志文件!

日志文件编辑器现在使用IVsTextView界面,现在可以打开非常大的文本文件。这样用户就不需要“全部复制”截断的日志并在单独的编辑器中打开它们。对于MSTest,我们还包括一个聚合输出的日志文件,而不是每个数据行都有单独的日志文件。

Git生产力

我们继续在VisualStudio中增强Git工具,并很高兴宣布一些期待已久的更新。我们改进了您切换存储库、查看提交、与diff交互以及同步分支的方式。

状态栏现在具有增强的分支选择器、存储库选择器和同步按钮。选择提交以在Git Repository窗口中打开其详细信息和文件更改的嵌入视图,而无需导航到其他窗口。您可以用同样的方法比较提交!如果您想深入更改,此视图还允许您将提交弹出到它们自己的窗口中。

最后,Git Changes窗口有一个新的溢出菜单,其中包含管理远程、推送标记和管理分支的命令。在我们最新的Git博客帖子

16.10预览2中的增强Git工具
Git工具增强使管理repo、分支和与diff交互变得更容易!请参见全尺寸

 

Visual Studio 2019 16.10预览版2为所有Visual Studio用户添加了一组出色的生产力增强功能。今天下载预览尝试新功能,不要忘记报告问题向我们反馈开发人员社区

帖子Visual Studio 2019 v16.10预览版2今日发布首次出现于Visual Studio博客

]]>
https://devblogs.microsoft.com/visualstudio/visual-studio-2019-v16-10-preview-2/feed/ 27
Visual Studio 2019 v16.9和v16.10预览版1现已推出! https://devblogs.microsoft.com/visualstudio/vs2019-v16-9和v16-10-preview-1/ https://devblogs.microsoft.com/visualstudio/vs2019-v16-9-and-v16-10-preview-1/#评论 2021年3月2日星期二17:11:32+0000 https://devblogs.microsoft.com/visualstudio/?p=231706 我们的团队渴望发布Visual Studio 2019 v16.9和v16.10预览版1。这些包括我们的C++的新功能。NET生产力、XAML工具、地址清理器和IntelliCode团队。

帖子Visual Studio 2019 v16.9和v16.10预览版1现已推出!首次出现于Visual Studio博客

]]>
每当有这样的会议时Microsoft点火,我们的内部团队都非常激动。我们期待着发现哪些新的、激动人心的产品、产品功能和教育机会可供我们的客户使用。为了延续这种激动人心的情绪,Visual Studio团队渴望发布Visual Studio 2019 v16.9和v16.10 Preview 1。我们希望您喜欢一些团队(如C++)强调的新功能。NET生产力、地址清理器、XAML工具和IntelliCode团队。此外,Visual Studio 2019 v16.9是我们的下一个长期版本维修释放装置

当您享受我们的一些虚拟会议时,请随时下载我们的最新版本尝试一下这些新功能。此外,我们很乐意通过我们改进的开发人员社区。这是我们团队寻找新想法或解决您可能遇到的任何问题的第一个地方。我们期待通过我们充满活力的在线社区与您互动。

Visual Studio 2019 v16.9的新增功能?

使用C解决消毒剂问题++

首先是我们的公告解决Windows的消毒剂支持没有实验支持,现在可以普遍使用。最突出的变化是MSVC现在可以计算出在项目中使用ASan需要哪些运行时库。因此,在从命令行编译时不再需要提供它们。你只需要设置/fsanitize=地址我们的工具将解决其余的细节。

此外,针对ASan报告的异常的IDE集成(vcasan.lib(vcasan-lib))现在处理可报告的ASan异常的完整集合。如果编译器和链接器检测到您正在使用ASan构建,但没有收到调试信息,它将提供发出此信息的选项。

最后,我们添加了对全局C变量和__declspec(no_sanitize_address)。这样就可以选择不针对特定变量甚至整个函数运行地址消毒剂。

C++一致性

我们已经实施了更多Constexpr容器允许析构函数和新表达式常量表达式。我们对此感到兴奋,因为它为以下公用事业铺平了道路constexpr标准::矢量标准::字符串。此版本中的实现包括编译器诊断,用于触发未定义行为的使用。

C++智能感知

根据您的反馈,我们在IntelliSense中提供导入模块和标头单元的稳定性和功能性方面做了许多改进。我们感谢每一份报告,请继续关注!在我们致力于稳定性的同时,我们还添加了额外的功能。因此,我们可以强调转到定义在模块导入上,对导出{…}的索引支持,以及对具有相同名称的模块的更准确的模块引用。

Visual Studio 2019 v16.9中模块导入的定义
Visual Studio 2019 v16.9中模块导入的定义

作为最受欢迎的开发人员社区建议票的实施,我们增加了使唯一make_shared(品牌_共享)、和放回(emplace_back)。它们根据指定的类型参数提供文本补全。

此外,Visual Studio 2019可以基于工具链文件设置的CMake变量值在CMake项目中配置IntelliSense。这大大改进了Android和其他嵌入式场景的IntelliSense。CMakeSettings.json文件是指定自定义IntelliSense选项的位置。

改进的堆栈溢出场景的调用堆栈处理

Visual Studio 2019提供了一种新功能,可以在调试器在堆栈溢出异常。现在可以看到无限递归产生的堆栈底部。这样可以更容易地调查这些类型的错误。

Visual Studio 2019 v16.9中改进的调用堆栈处理
Visual Studio 2019 v16.9中改进的调用堆栈处理

 

新增。NET核心内存转储分析器

死锁通常发生在线程A等待线程B释放锁时。同时,线程B正在等待线程A释放锁。这个难题导致我们添加了一个新的自动分析器来检查内存转储中的线程,以确定无响应的应用程序是否是由于这些死锁之一造成的。阻塞的终结器可能会导致异常的内存增长。这反过来又会导致内存不足异常导致系统不稳定。我们的新分析仪检查。NET核心终结器队列,帮助您识别内存转储中的潜在阻塞对象。

Visual Studio 2019 v16.9中的新内存转储分析器
Visual Studio 2019 v16.9中的新内存转储分析器

要访问Analyzer,请在Visual Studio 2019中打开内存转储。在“迷你转储文件摘要”页面上,选择运行诊断分析行动。

IntelliCode:完工清单中的无摩擦建议

IntelliCode建议已经可以帮助您找到重复编辑应用的其他位置。相比之下,在Visual Studio 2019 v16.9中,您可以轻松地以更轻松的方式应用建议,而不会中断您的编辑流程。您可以在IntelliSense完成列表中找到IntelliCode建议。从那里,您还可以在其他位置找到并应用相同的更改。完成列表中的这个新功能应该自然地融入到您的编辑流程中。编辑以非侵入方式添加到完成列表中。这使得编辑很容易找到并执行重复操作。

在中了解更多信息博客帖子来自编写该功能的团队。

IntelliCode:Visual Studio 2019 v16.9中的无摩擦建议
IntelliCode:Visual Studio 2019 v16.9中的无摩擦建议

.NET生产力

来自我们的。NET团队,我们为您带来了一些功能,以帮助您不断提高生产力。首先,在将类型复制和粘贴到新文件时,将自动添加using指令。要尝试此操作,您需要在下打开此选项工具>选项>文本编辑器>C#。您也可以从访问它基本>高级并选择在粘贴时添加缺少的using指令

使用Visual Studio 2019 v16.9中自动添加的指令
使用Visual Studio 2019 v16.9中自动添加的指令

我们还添加了内联类型提示,用于为具有推断类型和lambda参数类型的变量插入装饰。与上一个功能一样,您需要在菜单下打开此功能工具>选项>文本编辑器>C#或再次低于基本>高级>显示内联类型提示。最后一个选项位于“内联提示”部分下。按住Alt+F1组合键随时查看提示。

Visual Studio 2019 v16.9中的内联类型提示
Visual Studio 2019 v16.9中的内联类型提示

此外,现在有了IntelliSense完成功能,可以自动插入分号作为对象创建和方法完成的提交字符。

Visual Studio 2019 v16.9中的自动分号插入
Visual Studio 2019 v16.9中的自动分号插入

使用WSL 2进行.NET内核调试

你是一个。NET核心开发人员,喜欢在Windows和Visual Studio中工作,但需要在Linux中测试您的应用程序?如果是这样的话,那就是新的。NET内核在WSL2中的调试功能是您需要尝试的!它使您能够使用您选择的Linux发行版在WSL2中调试代码。

Visual Studio 2019 v16.9预览版1中使用WSL 2进行.NET核心调试
在Visual Studio 2019 v16.9中使用WSL 2进行.NET核心调试

安装后WSL 2号机组分布并打开ASP。NET核心web应用或。NET核心控制台应用程序,您将看到一个名为WSL 2号机组

在Visual Studio 2019 v16.9预览版1中添加启动配置文件WSL 2
在Visual Studio 2019 v16.9中添加启动配置文件WSL 2

选择此配置文件会将其添加到launchSettings.json中。选择新配置文件后,Visual Studio会检查WSL 2分发是否配置为运行。NET核心应用程序,并帮助您安装任何缺少的依赖项。一旦安装了所有依赖项,就可以调试WSL2了。从这里,您可以正常启动调试,您的应用程序现在将在默认的WSL2发行版中运行。检查环境。OS版本以验证正确的分布。

注:只有Ubuntu和Debian已经过测试,目前支持。支持的其他发行版。NET Core应该可以工作,但需要手动安装.NET核心运行时卷曲

默认情况下,WSL2启动配置文件将使用WSL.exe中设置的默认分发,但您可以修改启动配置文件以包含特定分发。添加额外功能后,您还可以拥有多个启动配置文件。例如,如果你需要在Debian、Ubuntu 18.04和Ubuntu 20.04上测试你的控制台应用程序,你可以修改这些设置。

XAML工具(WPF、WinUI、UWP和Xamarin.Forms

在这个版本中,我们有制造的 XAML工具的多项改进g、 突出显示包括: 

对于MVVM工具改进在XAML代码编辑器中我们已经介绍了灯泡至 将XAML中的设计DataContext设置为可用视图模型.设置此增强智能感知例如创建新ViewModel属性的功能,转到定义和完成 从右侧开始XAML代码编辑你甚至可以创建新的ICommand属性对于您的解决方案引用的任何实现。 

Xamarin.Forms“仅更改”XAML热重新加载现在是GA质量,不再在预览中。 针对Xamarin的应用程序。默认情况下,Forms 5.0或更新版本将使用此新模式。  

新的“仅更改”XAML热重新加载机制使您可以实时更新正在运行的应用程序的UI,并立即查看这些更改,而无需重新加载整个页面,也无需保存文件。“仅更改”热重新加载还支持Live Visual Tree,因此您可以查看应用程序的运行时UI层次结构,并轻松导航到XAML源代码。  

Visual Studio 2019 v16.9中的实时可视化树
Visual Studio 2019 v16.9中的实时可视化树

对于那些喜欢继续使用旧的“整页”热重新加载的客户,即使是针对Xamarin.Forms SDK v5的项目,也可以通过转到“工具”>“选项”>“调试”>“热重新加载”下的“热重新载入”设置来继续使用旧版的“整页面”热重新载入。

这只是我们的两个亮点XAML工具改进请参阅发行说明。

叮!您的测试运行已完成!

我们发现其中一个特别有趣的功能是测试浏览器如何在测试运行完成后播放音频提示。这包括为所有测试通过的测试运行选择不同的声音,为至少一个测试失败的测试运行提供不同的声音。您还可以使用Windows 10声音库或您自己的音频文件完全自定义这些声音。要看这个动作,看看我们的演示

GitHub Actions工具的改进

在之前的帖子中,在Visual Studio中使用GitHub操作就像右键单击并发布一样简单,我们宣布了在Visual Studio 2019中为扩展我们的发布体验所做的努力。具体来说,我们试图使用GitHub Actions向开发人员介绍并帮助他们实现可重复、可预测的持续集成和部署(CI/CD)环境。在此版本中,我们进行了以下改进:

  • 重新设计的摘要页面。
  • 添加的新状态部分
  • 只需单击一次即可提交和推送工作流

此外,这些更新的经验现在也认识到更多的项目类型。此外,我们将帮助您生成用于构建、测试和部署ASP的CI/CD工作流。NET web项目到Azure应用程序服务、Azure功能和Azure API管理。

Visual Studio 2019 v16.9中的GitHub操作工具
Visual Studio 2019 v16.9中的GitHub操作工具

Visual Studio 2019 v16.10预览版1的新增功能?

.NET生产力

我们的。NET生产力团队一直在为这个版本努力工作!

删除未使用的引用

我们通过删除未使用的引用命令。此命令允许您清理未使用的项目引用和NuGet包。默认情况下,此选项处于关闭状态,但您可以在菜单下启用它工具>选项>文本编辑器>C#>高级。选择删除未使用的引用解决方案资源管理器中的命令(实验)。启用该选项后删除未使用的引用命令将出现在项目名称或依赖项节点的右键单击菜单中。

在Visual Studio 2019 v16.10预览版1中删除未使用的引用
在Visual Studio 2019 v16.10预览版1中删除未使用的引用

 

当您选择删除未使用的引用,将打开一个对话框。然后,您可以查看将要删除的所有引用,但也可以选择保留任何希望保留的引用。

在Visual Studio 2019 v16.10 Preview 1中自定义删除未使用的引用
在Visual Studio 2019 v16.10 Preview 1中自定义删除未使用的引用

 

简化LINQ表达式

接下来,对简化LINQ表达式。这将删除对Enumerable的不必要调用。其中()方法,以帮助提高性能和可读性。要访问此功能,请将光标放在LINQ表达式,按(Ctrl键+)触发快速行动和重构菜单。选择简化LINQ表达式

在Visual Studio 2019 v16.10预览版1中简化LINQ表达式
在Visual Studio 2019 v16.10预览版1中简化LINQ表达式

 

新的完成选项

接下来,即使未输入Enum值,当类型已知时,也可以通过为Enum值添加补全来实现其他IntelliSense功能。

Visual Studio 2019 v16.10预览版1中枚举值的智能感知完成
Visual Studio 2019 v16.10预览版1中枚举值的智能感知完成

我们还添加了一个新的IntelliSense完成模式设置,使您能够设置默认完成选项。此新设置在中可用工具>选项>文本编辑器>高级>默认IntelliSense完成模式您可以从以下选项中进行选择:上次使用时间这将保留上次使用的设置Ctrl+Alt+空格键标签式只在选项卡上完成,并且自动这是当前将在完成的默认行为标点符号和特殊字符。

Visual Studio 2019 v16.10预览版1中的IntelliSense完成选项
Visual Studio 2019 v16.10预览版1中的IntelliSense完成选项

为了继续帮助您,我们添加了一个名为智能断线它会自动插入一组大括号,并在使用时在这些大括号中添加插入符号班次+输入作为提交字符。Smart Break Line适用于所有需要大括号以及属性、事件、字段和对象创建表达式的类型声明。下面的示例显示了在类和字段上使用的Smart Break Line。如果字段末尾没有分号,请键入班次+输入 将通过添加一组大括号将字段转换为属性。再次使用班次+输入撤消提交操作,该操作仍将自动在字段末尾添加分号。

Visual Studio 2019 v16.10预览版1中的智能分隔线
Visual Studio 2019 v16.10预览版1中的智能分隔线

新行的新代码样式首选项

最后,我们为新行添加了新的代码样式首选项。您可以使用EditorConfig文件或工具>选项>文本编辑器>C#>代码样式>新行首选项(实验性)

Visual Studio 2019 v16.10预览版1中的新线样式首选项
Visual Studio 2019 v16.10预览版1中的新线样式首选项

例如,您可以设置代码样式首选项以报告诊断,并提供代码修复以删除多余的空行。

删除Visual Studio 2019 v16.10预览版1中多余的空白行
删除Visual Studio 2019 v16.10预览版1中的多余空行

 

对Visual Studio 2019 v16.9的扩展支持

Visual Studio 2019版本16.9是Visual Studio 2018支持的第四个服务基准。因此,鼓励企业和专业客户对此版本进行标准化,因为它将提供长期稳定和安全的开发环境。如我们的生命周期和支持策略版本16.9将在下一个服务基线发布后的一年内得到修复和安全更新的支持。

既然16.9版可用,那么我们最后发布的服务基准16.7版将再支持一年,并将于2022年4月停止支持。以前的次要版本16.0、16.1、16.2、16.3、16.5、16.6和16.8不再受支持。这些中间版本仅在下一次次要更新发布之前收到服务修复。

您可以在的下载选项卡中获取最新最安全的Visual Studio 2019 16.9版本订阅门户。有关Visual Studio支持的基线的详细信息,请查看Visual Studio 2019的支持策略

如您所见,我们一直在忙于更新产品,以便为开发人员带来更多价值和生产力。我们希望您喜欢这些功能中的每一项,并期待听到您对以下方面的改进建议开发人员社区。现在,我将进入我们的“点燃2021”课程,我希望在其中看到你在线互动。一如既往,我们希望您在我们的v16.9或v16.10 Preview 1版本中获得愉快的Visual Studio 2019体验。本日历年将发布一些激动人心的公告,敬请期待!

帖子Visual Studio 2019 v16.9和v16.10预览版1现已推出!首次出现于Visual Studio博客

]]>
https://devblogs.microsoft.com/visualstudio/vs2019-v16-9-and-v16-10预览-1/feed/ 29