Visual Studio 2019 v16.8 Preview 3.1中的新功能

杰奎琳·维迪斯

点燃2020,我们将发布Visual Studio 2019 v16.8 Preview 3.1。当我们为产品推出新功能时,我们的活动总是给我们的团队带来兴奋。在这个版本中,我们将为您提供Git集成、C++20一致性方面的改进。NET生产力、Web工具和XAML。我们迫不及待地想知道这些功能如何影响您的工作。同样,我们喜欢听到我们如何通过我们的开发人员社区.

在参加我们的免费Ignite 2020课程时,为什么不下载我们的最新预览版并尝试一下这些新功能呢?

Visual Studio的GitHub代码空间

Visual Studio的GitHub代码空间现在可用作为Visual Studio 2019 Preview 3.1的有限测试版。这为您提供了一个即时云开发环境,允许您从任何地方进行编码。您可以在代码空间中使用您喜欢的Visual Studio 2019中的功能来开发、测试和部署包括ASP在内的现代应用程序。NET核心web应用。NET Core、CMake和C++控制台/库应用程序。GitHub Codespaces for Visual Studio适用于在有限测试版中注册的GitHub用户子集。随着时间的推移,更多用户将根据可用性和注册日期获得访问权限。

从Visual Studio 2019创建GitHub代码空间
从Visual Studio 2019创建GitHub代码空间

在本地计算机上Visual Studio竞争 带有其他应用程序具有限制的资源中央处理器磁盘 空间.使用C类节点空间许多CPU密集型操作加载解决方案建筑物,和调试已卸载云。这个允许您在没有撞击我们的本地机器的资源。 这个当您在C类odespace空间安装Visual Studio以连接到GitHub代码空间需要几分钟.  

快速设置

无论您是团队的新手还是在新机器上,从头开始为项目设置完整的开发环境都是一项挑战。正确配置存储库需要时间。更糟糕的是,如果有些东西不起作用,你就会怀疑自己是否犯了错误,或者设置步骤是否过时了。现在,您可以使用名为德维尼特。这允许您通过声明性格式定义代码中的依赖项,该声明性格式与源一起版本化,以便它在代码的任何分支中始终是最新的。Devinit支持一系列现有的包管理器,以自动和重复地配置代码空间中的依赖项。我们已经收集了一些资源,以便您能够了解有关如何使用devinit的更多信息.

Git集成

我们一直在使用新的Git工具扩展和改进对Git源代码管理工作流的支持。在这个最新预览中,您可以使用新的“创建分支”对话框从Azure DevOps工作项创建新分支。只需从团队资源管理器转到“工作项”面板,右键单击一个工作项即可从中创建一个新分支。

从工作项创建新分支
从工作项创建新分支

现在,您还可以使用本地Git存储库列表,当您打开项目、解决方案或只是文件夹时,VisualStudio会检测到这些存储库并将其添加到Git菜单中。您还可以直接克隆存储库并将其添加到此列表中。从该菜单中选择存储库将在Visual Studio中打开Git上下文。然后,您可以转到解决方案资源管理器加载所需的解决方案或文件夹。

Git菜单中的本地存储库列表
Visual Studio 2019 Git菜单中的本地存储库列表

此外,我们已经将默认的源代码管理提供程序更改为Git,当您第一次安装VisualStudio时,它将处于活动状态。它以前是TFVC。因此,现在您将在第一次启动时获得可用的Git菜单和工具窗口,而无需转到工具–选项–源代码管理更改设置。

C类++

C++团队很高兴地宣布,他们已经改进了对编译器、标准库和IDE中主要C++20功能的支持。现在,您可以在同一个项目中使用模块、概念、Coroutine和(某些)Range!

我们一直在做的工作C++20 Coroutines现已完成,可在以下位置使用/标准:c++最新。使用C++20 Coroutines时,应包含<coroutine>头。<experimental/coroutine>和/await开关下提供了对遗留行为的支持。在我们的C++20 Coroutines博客帖子。也可在/标准:c++最新功能齐全C++20模块这包括标头单元和实验性MSBuild支持。令人兴奋的是,这将自动计算出您的模块依赖项,并确保它们按正确的顺序构建。团队的C++20模块博客帖子.

在这个版本中还支持大多数C++20范围最大的亮点是支持大多数基于距离的算法。不过,请放心,我们仍在不懈努力,以完成剩下的工作。请随时跟踪我们的进度这个GitHub问题.

STL功能和优化

在Ranges之外,此版本带来了几个新的STL功能和优化。一些示例包括:

一如既往,我们在我们的变更日志.

IntelliSense现在提供了对C++20<concepts>和<ranges>标头的支持,以及对概念定义的重命名和浏览。

Intellisense对C++20<concepts>和<range>的支持
Visual Studio 2019中对C++20的智能感知支持

我们确实有已知问题我们希望在Visual Studio 2019 v16.8 Preview 4中解决这些问题。

当我们使用IntelliSense时,我们基于IntelliSense驱动的代码过梁添加了新的警告和快速fix。使用工具>选项>文本编辑器>C/C++->CodeStyle->Linter+修复程序根据您的喜好进行配置。您将能够获得算术溢出、未初始化局部变量、将整数除法结果转换为浮点等方面的警告和修复!

Visual Studio 2019编辑器中的IntelliSense-Driven Code Linter
Visual Studio 2019编辑器中的IntelliSense-Driven Code Linter

我们的代码分析工具现在支持SARIF 2.1标准:行业标准静态分析日志格式。在幕后,SARIF 2.1为Visual Studio中的MSVC代码分析提供了强大的功能,包括在常规和后台代码分析运行中的错误列表填充、绿色波形符号和修复。在不久的将来,我们计划根据SARIF日志中的信息,根据每个缺陷的严重程度(信息/警告/错误)对波形符号进行颜色编码,从而进一步改进IDE体验。您可以在中阅读有关SARIF格式的更多信息官方规范.

C11和C17支架

现在,使用/std:C11和/std:C17开关支持C11和C17的所有必需功能。这包括:

  • _布拉格
  • 限制
  • _Noreturn和<stdnoreturn.h>
  • _Alignas、_Alignof和<stdalign.h>
  • _通用和<tgmath.h>支持
  • _统计_断言

值得一提的是,可选功能不受支持,因此我们不主张符合C99。在我们的C11/C17博客帖子。

调试Linux内核转储

如果您运行“Windows商店”,但部署到Linux服务器,您可能会发现下一个功能非常令人兴奋。现在,您可以直接从VisualStudio在远程Linux系统或WSL上调试Linux核心转储。这将帮助您在熟悉的环境中诊断崩溃。

从Visual Studio 2019在远程Linux系统上调试Linux内核转储
从Visual Studio 2019在远程Linux系统上调试Linux内核转储

说到Linux,我们已经改进了Linux项目中缺少构建工具的错误报告。以前,在编译、调试或使用IntelliSense时会遇到很多错误。工具栏中的警告现在将给出一个明确的错误,告诉您错误视图中缺少的工具。

以下是您将在Visual Studio 2019 v16.8 Preview 3.1中看到的几个示例:

改进的错误报告示例
Visual Studio 2019中改进的错误报告示例

或者

错误报告改进的另一个示例
Visual Studio 2019中错误报告改进的另一个示例

在总结C++团队的功能时,添加了条件平凡的特殊成员函数现在MSVC中支持。最后,我们将Visual Studio附带的CMake版本升级到了CMake 3.18。这将使您能够使用他们的新CMake分析功能等。在中阅读更多信息团队发布说明.

.NET生产力

.NET编译器平台(Roslyn)分析器检查C#或Visual Basic代码的安全性、性能、设计和其他问题。从中开始。NET 5.0,这些分析器包含在.NET SDK。默认情况下,为目标项目启用代码分析。NET 5.0或更高版本。我们添加了对早期目标项目进行代码分析的功能。NET版本,方法是设置启用NET分析器属性到真的。另一方面,您可以通过设置启用NET分析器。实现此目的的另一种方法是使用项目属性切换。要访问项目属性右键单击解决方案资源管理器中的项目并选择属性。接下来,选择代码分析选项卡,您可以在其中选择或清除复选框启用。NET分析器.

有可能。Visual Studio 2019中的NET分析器
启用。Visual Studio 2019中的NET分析器

内联方法重构

现在有一个内联方法重构,它可以帮助您用一个选项来删除原始方法声明,从而替换单个语句体中静态、实例和扩展方法的用法。将光标放在方法的用法上。按下(Ctrl键+.)触发快速行动和重构菜单。接下来,从以下选项中选择一个:

选择内联<限定的方法名称>要删除内联方法声明:

Visual Studio 2019中的内联合格方法重构
Visual Studio 2019中的内联合格方法重构

选择内联并保持 <限定方法名称>要保留原始方法声明:

Visual Studio 2019中的内联和保持方法重构
Visual Studio 2019中的内联和保持方法重构

相同的快速行动和重构当存在抑制运算符时,菜单中有新的C#9`not`模式匹配语法选项。再次使用(Ctrl键+.)触发菜单并选择使用模式匹配.

在Visual Studio 2019中使用模式匹配
在Visual Studio 2019中使用模式匹配

最后,从模板方面创建一个新的C#或Visual Basic文件编辑器配置代码样式设置。创建新文件时,将自动应用以下代码样式:文件头、使用指令排序和在名称空间内外放置使用指令。

调试器

与我们的C++团队添加的功能类似,我们意识到在Windows上调试捕获的托管Linux核心转储非常困难。这通常意味着设置另一个精确镜像生产的Linux环境,然后安装一组用于分析的工具。幸运的是,有了Visual Studio 2019 16.8预览版3.1,您可以简单地将托管Linux核心转储直接拖放到IDE中,然后立即开始调试。

调试托管Linux内核转储文件
在Visual Studio 2019中调试托管Linux核心转储文件

XAML体验

XAML绑定失败诊断改进

从事WPF、UWP、WinUI和Xamarin.Forms项目的开发人员必须经常检测并解决其应用程序中的XAML数据绑定故障。为了改进此场景中的诊断工具,我们在Visual Studio 2019中添加了两种新体验(16.8 Preview 3.1+),现在这两种体验都默认对我们的Preview客户启用。

细节:

  • XAML绑定失败指示器图标现在出现在WPF和UWP项目的应用内工具栏中。如果检测到至少一个绑定失败,此图标将显示红色指示灯。单击该图标还将带您进入新的XAML绑定失败窗口。

    Visual Studio 2019中的XAML绑定失败指示器图标
    Visual Studio 2019中的XAML绑定失败指示器图标
  • 新建“XAML绑定失败”窗口现在可用于WPF、UWP、WinUI和Xamarin.Forms项目。这个新的专用体验提供了一个丰富的用户界面,覆盖了以前仅在输出窗口中提供的绑定失败信息。改进包括将故障视为一组列的功能,这些列可以进行排序、自定义和完全搜索。我们还将类似的错误分组在一起,限制了在数据绑定模板的某些组合失败期间可能发生的噪声,同时仍然可以通过右键单击菜单选项提供所有原始错误信息,并可以轻松复制。(注意:需要Xamarin 5.0.266-pre3或更高版本)

    Visual Studio 2019中新的XAML绑定失败窗口
    Visual Studio 2019中新的XAML绑定失败窗口

其他XAML工具改进

在之前的16.8预览版中,我们还发布了许多其他新的XAML功能,包括更新XAML热重新加载设置UI、XAML Hot Reload支持Xamarin。针对UWP的表单项目和改进的MVVM工具,可帮助您通过IntelliSense设置XAML文档d:DataContext。有关这些附加功能的详细信息,请参阅完整的发行说明.

下面是一个预览:中的伪代码覆盖支持。NET核心

随着的发布。NET Core对Visual Studio 16.6中Fakes的支持许多用户急切地等待Fakes in的代码覆盖支持。NET核心。我们希望仅在windows上的16.9更新中获得此支持,以下是预览。

这需要启用Visual Studio内置的动态代码覆盖率才能使用开源CLR检测引擎。这也是最终为动态代码覆盖提供跨平台解决方案的激动人心的第一步。

享受Ignite 2020和Visual Studio 2019 v16.8预览版3.1

再一次,我们正在不断地通过我们的功能实现更大的功能。在享受Ignite的同时,请下载Visual Studio 2019 v16.8 Preview 3.1以进行尝试。让我们知道我们正在做什么,因为您的意见对我们的团队最有价值。

 

 

 

 

 

 

 

 

 

 

 

10条评论

讨论结束。登录以编辑/删除现有评论。

  • 乔·古道尔 0

    有关于WinForms设计器的消息吗?我有一段时间没有看到任何关于它的东西了。

    • 奥利娅·加夫里什Microsoft员工 0

      现在支持所有控件。我们正在致力于支持数据场景、第三方控件、改进性能和解决其他小问题。

  • 乔恩·米勒 0

    你会继续支持吗。在Visual Studio的未来版本中使用NET Framework 4.8,例如Visual Studio 2021或其他版本?或者,will。NET Framework开发人员在Visual Studio 2019上落后了吗?

    • 豪尔赫·莫拉莱斯·维达尔 0

      我不认为。NETFramework4.8支持将很快从VisualStudio中删除,因为VS本身是使用构建的。NET框架。所以您仍然可以期待拥有您的。NET Framework项目暂时在VS2019中得到支持和工作。

  • 鹏捷徐 0

    有关于Native C++NuGet PackageReference的消息吗?

    vcpkg在VS平台中的方便性和通用性并不好。

    在VS平台上,NuGet比vcpkg领先100年。

    NuGet长期以来一直像vcpkg一样支持源代码编译。我一直不明白为什么本机C++不支持PackageReference。
    这不是很容易吗?

  • 迈克·卡特 0

    我很高兴DotNet 5.0现在在RC1中,可以进行生产部署,但除非我使用的VS Code缺少WinForms设计器,否则很遗憾它需要VS 2019 16.8预览版,而这还不能进行生产开发。在没有做出任何承诺或前瞻性声明的情况下,我应该预计VS2019 16.8的大致时间段是什么?

    • 克里斯蒂安·哈夫纳 0

      这对我来说也很有趣。如果能给我一个简短的答复,我将不胜感激。

  • 斯特凡·德恩伯格 0

    如果你能提到(可能在下面的博客条目中)哪些VS改进对VB程序员产生了影响或带来了改进,那就太好了。
    例如:VB.Net中是否也提供重构改进?等。
    提前谢谢你!

  • 迪安·杰克逊 0

    此页面“发布版本”选项卡上的大紫色“Visual Studio路线图”按钮:
    https://developercommunity.visualstudio.com/spaces/8/index.html

    不起作用,它不会把你带到路线图上。这就是当您不将按钮链接到实际页面,而是使用一些重定向服务时会发生的情况。

    • 德斯·克里斯德森Microsoft员工 0

      谢谢你的提醒。现在已修复。

反馈usabilla图标