Visual Studio 2019 v16.10有什么新功能?

我们很高兴地宣布Visual Studio 2019 v16.10 GA 和 v16.11 preview 1发布。此版本使我们的主题“开发者生产力和便利性”普遍适用于 Visual Studio 用户!我们添加了c++ 20特性、优化的Git集成、分析工具,以及许多提高开发效率的特性。

下载最新的Visual Studio版本以尝试16.10中的新特性。一如既往,我们希望您通过我们的开发者社区提供反馈和互动。

安装visual studio 2019 v16.10

C++

我们的编译器和 STL 现在功能完备,适用于最新可用的C++20 标准!16.10带来了一些备受期待的特性:日历、时区和 。这些特性都可以在/std:c++latest开关下使用。不过/std:c++20开关还不可用,因为一些特性预期将在缺陷报告(ISO c++20 bug修复)中以ABI不兼容的方式进行修正(更多细节请参阅Microsoft/STL Issue #1814)。

是一种新的基于 fmtlib 的文本格式工具。 它为 iostreams 和 printf 系列提供了一种快速且安全的替代方案:

auto version = 20;
std::format(“STL is now C++{} feature-complete!”, version);

日历和时区是对现有工具的扩展。它们提供了一种类型安全和时区感知的方式,来表示和操控日期和时间。

std::chrono::year_month_day world_bee_day = May/20d/2021y
std::format("Buzz buzz on %F!”, world_bee_day);

此外,我们还改进了模块、范围和概念的智能感知体验。“转到定义”既适用于模块本身,也适用于从模块中导入的定义。对于编译器来说,编译器进入范围是出了名的困难,但是智能感知现在可以为你做这件事。另外,定义的概念名称会自动补全。

现在,除了x64之外, x86和ARM64也支持 LLVM OpenMP 运行时。通过/openmp:llvm开关来指向它。

如果你想使用c++ 20-style的协程,但目标是c++ 11或c++ 14,你现在可以使用/await:strict开关来获得想要的行为。

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

如果你正在使用我们的CMake支持,那么你现在可以使用CMakePresets来指定配置,而不是使用cmakessetting .json。这种格式在Visual Studio、Visual Studio Code和任何其他支持这种新标准的工具之间是一致的。

Git生产力

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

现在,当您单独选择一个分支时,状态栏中的分支选择器以及Git Changes窗口将迁到本地或远程分支。

从状态栏存储库选择器中筛选和切换本地Git存储库。右键单击快捷菜单可以从列表中删除项目。

在状态栏点击未push的提交按钮,并在Git菜单同步命令,同步(pull和push) 你的分支到远程。

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

在Git Repository窗口中选择一个提交,可以查看它的详细信息和文件更改的比较,而不必导航到其他窗口。选择两个提交并右键单击从而在同一个窗口中比较它们。将细节弹出到它们自己的窗口中全屏显示,从而深入了解更改。

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

现在,您可以从Git Changes窗口执行更多操作。工具栏图标是可定制的,您可以选择显示哪些操作。您可以从延伸菜单与多个远程同步。也可以在浏览器中打开存储库的远程网页。

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

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

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

Git 设置

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

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

但是,如果您选择打开根文件夹,Visual Studio将不再自动加载解决方案。相反,您将在一个列表中看到可用的文件夹视图和解决方案。你可以通过Git > Settings切换复选框来改变这个行为。

通过双击分支名称,您可以选择从Git Repository窗口迁出分支。如果你想改变这个行为,那么在Git > Settings中切换复选框。

性能剖析器

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

Performance Profiler 中的 .NET 对象分配工具是第一个过渡到我们新的分析引擎的工具,该引擎速度明显更快并提供更多功能。在收集之后,得到结果并更快地构建调用树(约增加40%)。我们现在还支持SourceLink来pull源代码,因此您可以确切地看到代码分配的位置,即使它不在您的代码中。

这需要对应代码的符号,可以从微软符号服务器下拉,从调试>选项>符号来启用它。

容器

这个版本为Docker容器工具的用户提供了一些激动人心的特性。您现在可以运行在组合文件中定义的任何服务组合,并在容器窗口中享受改进的容器和映像管理。要了解更多信息,请参阅我们16.10预览版3博客中的容器新特性公告。

.Net的生产力

我们的.net团队为您带来了几个特性,以帮助您持续提高生产力。

我们增加了功能“删除未使用的引用命令”。这个命令允许您清理未使用的项目引用和NuGet包。默认情况下,这个选项是关闭的,但是你可以在菜单工具> Options > Text Editor > c# > Advanced下启用它。在解决方案资源管理器(实验)中选择删除未使用的引用命令。一旦启用该选项,删除未使用的引用命令将出现在项目名称或依赖项节点的右键菜单中。

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

智能感知的完成

当已知类型时,即使没有输入Enum值,也会由Enum值的额外的智能感知完成。我们还扩展了这个选项,包括强制转换、索引器和操作符的完成。

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

这个特性默认是关闭的,所以你需要在工具>选项>文本编辑器> c# >智能感知中启用它,然后选择Tab两次插入参数(实验)。

要使用这个特性,首先编写一个方法调用,然后按两次tab键(tab+tab)。注意,方法调用包含基于方法默认值的参数。使用参数信息循环遍历您希望通过按向上和向下方向键插入的参数列表。开始输入一个参数来调出智能感知完成列表并输入分号,这会提交该参数并在方法调用的末尾添加一个分号。

可视化和导航继承链

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

默认情况下,这个选项是关闭的,所以你需要在工具> Options > Text Editor > c# > Advanced中打开它,然后选择Show inheritance margin。启用继承边距将在代表代码实现和重写的边距中添加新的图标。

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

测试资源管理器可访问性改进

我们对Test Explorer做了一些更新,提高了键盘的可访问性和测试细节窗口和日志文件的可用性。有关详细信息,请参见16.10 preview 3博客中的测试体验可访问性改进

WinForms更新

我们已经重构了Visual Studio 16.10的行为服务。这使得.net Core 5和6的新WinForms设计器的性能得到了显著的改进。这也修复了许多与选择、拖放多个控件相关的问题。

XAML工具更新

我们不断改进现有的特性并添加新特性,以使您在开发XAML UI时更有效率。

XAML设计器快速动作

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

当您在XAML设计器中选择一个控件时,您将看到一个灯泡。一旦单击该控件,将显示此特定控件最常用的属性列表,从而节省您在属性资源管理器中查找这些属性或在XAML编辑器中输入代码的时间。

支持控件:

  • WPF: Border, Button, Canvas, CheckBox, ComboBox, Grid, Image, Label, ListBox, ListView, StackPanel, TextBlock, TextBox.。
  • UWP: Border, Button, Canvas, CheckBox, ComboBox, Grid, HyperlinkButton, Image, ListBox, ListView, NavigationView, RadioButton, Slider, StackPanel, TextBlock, TextBox.

这个特性适用于UWP、WPF Core和WPF Framework(启用“New WPF XAML Designer for . NET Framework”特性标志)。你也可以创建自己的动作,请参阅XAML Designer Extensibility GitHub了解更多。

XAML示例数据

通常,要查看控件使用数据值的外观,必须实现所有数据绑定,用值填充数据库,并且需要运行应用程序。有了这个特性,你就可以在设计器中通过“假”数据看到控件的外观。在ListBox、ListView或DataGrid上设置d:ItemSource='{d:SampleData}'。该控件将自动填充一个与您的datatemplate和BindingPaths匹配的“假”数据。这些数据显示在设计器中,不会影响源代码。

您可以使用ItemCount属性更改生成的项目数量,例如:d:ItemSource='{d:SampleData ItemCount=3}',默认情况下它被设置为5。

Visual Studio 2019 v16.11 预览版 1 中的新增功能

.NET 热重载

在此版本中,我们很高兴提供新的热重载用户体验的第一个版本,可在编辑 WPF、Windows Forms、ASP.NET Core、控制台等应用程序的代码文件时使用。通过热重载,您现在可以在运行时修改您的应用程序管理源代码,无需暂停执行或使用断点。 相反,只需进行受支持的更改并使用工具栏中的新的“应用代码更改”按钮立即应用它们。



进行更改并热加载WPF应用程序。

在Visual Studio的这次更新中,当你在调试器(F5)下运行你的应用程序时,这个新体验已经可以使用,它是由编辑和继续(EnC)机制驱动的。. NET热重载也可以与XAML热重载一起工作,使得在桌面应用程序(如WPF或WinUI)中进行UI和代码后台更改成为可能。

EnC和热重载具有相同的限制,因此不是每种类型的编辑都被支持。支持或不支持的完整列表可以在我们的文档中找到。

热重载现在也可以在.NET 6 Preview3或更高版本的CLI工具下使用,更多细节请参见.NET发布的博客。

这是我们旅程的开始, 在Visual Studio 2022和.未来的版本.NET 6+中,我们将寻求并进一步改善这种经验,比如从Visual Studio使用热重载启动应用程序时没有调试器(CTRL-F5)时减少不受支持的编辑数量,允许编辑Razor页面,支持热重载和.NET MAUI应用程序等。如果您想了解关于我们对该技术的更多细节,请参阅我们在. net blog上发表的详细博文。

我们真的希望你能在你的应用程序中尝试热重载,并通过Visual Studio的反馈特性提供反馈。

.NET MAUI

Visual Studio 16.11 Preview 1增加了对.NET MAUI的支持! .NET 多平台应用程序UI (MAUI) 将于今年 11 月正式发布,是为 iOS、Android、Windows 和 Mac 编写跨平台应用程序的最佳方式。.NET 6 Preview 4 今天发布了新的 .NET MAUI 功能,包括单个项目改进、针对所有受支持平台的能力以及 Blazor 混合桌面支持! Visual Studio 16.11 p1 允许您从 IDE 打开、构建和调试 .NET MAUI 应用程序,并为新的单一项目体系结构添加功能。 此外,您可以使用新项目配置向导来创建新的 .NET MAUI 应用程序!



.NET MAUI 演示应用程序 WeatherTwentyOne

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

使用 .NET MAUI 的单一项目架构从一个项目中定位 Android、iOS、Windows 和 Mac。

要立即试用 .NET MAUI,请下载 Visual Studio 16.11 并按照.NET MAUI 示例存储库中的说明安装.NET 6预览版 SDK!

有关详细信息,请参阅 .NET MAUI 预览 4

安装visual studio 2019 v16.11 preview 11

要体验 Visual Studio 2019 必须提供的最新功能,请立即下载预览版。 不要忘记在开发者社区上报告问题向我们提供反馈!同时也可以在微软Q&A论坛上提问任何有关开发的问题。

Visual Studio 2019 v16.10 和 v16.11 Preview 1 现已推出!的更多相关文章

  1. Dev Envirenment - Windows 10 && Visual Studio 2019 && OpenCV 4.1.0

    当每天用着 C# && Winform && VS 2010 && .Net Framework 4.0 && Halcon & ...

  2. 【广州.NET社区推荐】【译】Visual Studio 2019 中 WPF & UWP 的 XAML 开发工具新特性

    原文 | Dmitry 翻译 | 郑子铭 自Visual Studio 2019推出以来,我们为使用WPF或UWP桌面应用程序的XAML开发人员发布了许多新功能.在本周的 Visual Studio ...

  3. 【译】Visual Studio 2019 中 WPF & UWP 的 XAML 开发工具新特性

    原文 | Dmitry 翻译 | 郑子铭 自Visual Studio 2019推出以来,我们为使用WPF或UWP桌面应用程序的XAML开发人员发布了许多新功能.在本周的 Visual Studio ...

  4. 使用 Visual Studio 2019 批量添加代码文件头

    应用场景介绍 在我们使用一些开源项目时,基本上都会在每个源代码文件的头部看到一段版权声明.一个项目或解决方案中源代码文件的个数少则几十,多则几千甚至更多,那么怎么才能给这么多文件方便地批量添加或者修改 ...

  5. 带你使用Visual Studio 2019创建一个MVC Web应用

    工欲善其事必先利其器,我们既然有Visual Studio2019这样的IDE为什么不用?学.Net Core而不用Visual Studio进行开发可谓是多么另类呀!既然你已经安装了VS2019的话 ...

  6. Visual Studio 2019 for Mac 离线更新方法

    当你打开Visual Studio 2019 for Mac检查更新时,如果下载更新包很慢,可以尝试如下操作: 打开Finder(访达),找到~/Library/Caches/VisualStudio ...

  7. Visual Studio 2019更新到16.2.1

    Visual Studio 2019更新到16.2.1   此次更新,包含以下修改: (1)支持Xcode 10.3. (2)修复了Forms项目中,预览Android界面效果bug. (3)修复am ...

  8. Visual Studio 2019更新到16.1.4

    Visual Studio 2019更新到16.1.4 此次更新仍然是修复bug为主,涉及到Xcode 11无法启动模拟器.Xamarin.Android SDK 9.3.0.23的调试bug.

  9. 使用 visual studio 2019 社区版打开touchgfx工程注意项

    @2019-09-23 [环境] touchgfx designer 4.10.0 visual studio 2019 社区版 [问题] #error 1 使用 visual studio 2019 ...

随机推荐

  1. C++ primer plus读书笔记——第5章 循环和关系表达式

    第5章 循环和关系表达式 1. cout.setf(ios_base::boolalpha); cout << (100 > 3) << endl;将输出true,而不是 ...

  2. MySQL之数据定义语言(DDL)

    写在前面 本文中 [ 内容 ] 代表啊可选项,即可写可不写. SQL语言的基本功能介绍 SQL是一种结构化查询语言,主要有如下几个功能: 数据定义语言(DDL):全称Data Definition L ...

  3. git远端账号问题

    1. gitlab密码修改后git因保存密码无法下载,403 在.git/config添加如下 [credential] helper = store 添加了此项配置之后, github的账号信息就会 ...

  4. python 运算及注释

    """ 上面的两行代码,在2.0的python中,若想执行含有汉字的代码,是必不可少的,且两行代码必写在单个py文件最上方,之间不可有任何字节.且该两行代码,可在pych ...

  5. 7.12-7.19 id、w、who、last、lastb、lastlog

    7.12-7.19 id.w.who.last.lastb.lastlog 目录 7.12 id:显示用户与用户组的信息 7.13 w:显示已登录用户信息 7.14 who:显示已登录用户信息 显示最 ...

  6. VMware(Caps Lock键)切换大小写作用失效的Bug的解决办法

    前言 第一种情况是:进入VMware虚拟机的时候,即使按了Capslock键开启大写,灯虽然亮了,但是,打出来的字母还是小写,没有有任何的效果,根本不能转换成大写. 只有按Shift+字母才能输入大写 ...

  7. android常用的四种对话框java代码

    AlterDialog:确认取消警告提示框 public void showAlertDialog(View view){ AlertDialog.Builder dialog = new Alert ...

  8. Tomcat 服务器轻松部署 SSL 证书

    Tomcat 服务器 SSL 证书安装部署 1准备服务器 购买网上各个产家的云服务器 或者在自己的电脑上装虚拟机 二者皆可,建议选择第一种,因为操作起来相对方便 2安装JDK 2.1上传JDK到Lin ...

  9. 深入探索Glide图片加载框架:做了哪些优化?如何管理生命周期?怎么做大图加载?

    前言 Glide可以说是最常用的图片加载框架了,Glide链式调用使用方便,性能上也可以满足大多数场景的使用,Glide源码与原理也是面试中的常客. 但是Glide的源码内容比较多,想要学习它的源码往 ...

  10. SLAM的通用框架:GSLAM

    SLAM的通用框架:GSLAM GSLAM: A General SLAM Framework and Benchmark 论文链接: http://openaccess.thecvf.com/con ...