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 竞争 秒 带有 其他应用程序 的 具有限制的资源 中央处理器 和 磁盘 空间 . 使用 C类 节点空间 , 许多 CPU密集型 操作 像 加载 解决方案 建筑物, 和调试 已卸载 至 云。 这个 允许您 在没有 撞击 年 我们的 本地 机器的资源。 这个 也 当您在 C类 odespace空间 . 安装Visual Studio以连接到GitHub 代码空间 需要几分钟
快速设置
无论您是团队的新手还是在新机器上,从头开始为项目设置完整的开发环境都是一项挑战。 正确配置存储库需要时间。 更糟糕的是,如果有些东西不起作用,你就会怀疑自己是否犯了错误,或者设置步骤是否过时了。 现在,您可以使用名为 德维尼特 。这允许您通过声明性格式定义代码中的依赖项,该声明性格式与源一起版本化,以便它在代码的任何分支中始终是最新的。 Devinit支持一系列现有的包管理器,以自动和重复地配置代码空间中的依赖项。 我们已经收集了一些资源,以便您能够 了解有关如何使用devinit的更多信息 .
Git集成
我们一直在使用新的Git工具扩展和改进对Git源代码管理工作流的支持。 在这个最新预览中,您可以使用新的“创建分支”对话框从Azure DevOps工作项创建新分支。 只需从团队资源管理器转到“工作项”面板,右键单击一个工作项即可从中创建一个新分支。
从工作项创建新分支
现在,您还可以使用本地Git存储库列表,当您打开项目、解决方案或只是文件夹时,VisualStudio会检测到这些存储库并将其添加到Git菜单中。 您还可以直接克隆存储库并将其添加到此列表中。 从该菜单中选择存储库将在Visual Studio中打开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>标头的支持,以及对概念定义的重命名和浏览。
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
我们的代码分析工具现在支持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内核转储
说到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分析器
内联方法重构
现在有一个内联方法重构,它可以帮助您用一个选项来删除原始方法声明,从而替换单个语句体中静态、实例和扩展方法的用法。 将光标放在方法的用法上。 按下( Ctrl键 + . )触发 快速行动和重构 菜单。 接下来,从以下选项中选择一个:
选择 内联<限定的方法名称> 要删除内联方法声明:
Visual Studio 2019中的内联合格方法重构
选择 内联并保持 <限定方法名称> 要保留原始方法声明:
Visual Studio 2019中的内联和保持方法重构
相同的 快速行动和重构 当存在抑制运算符时,菜单中有新的C#9`not`模式匹配语法选项。 再次使用( Ctrl键 + . )触发菜单并选择 使用模式匹配 .
在Visual Studio 2019中使用模式匹配
最后,从模板方面创建一个新的C#或Visual Basic文件 编辑器配置 代码样式设置。 创建新文件时,将自动应用以下代码样式:文件头、使用指令排序和在名称空间内外放置使用指令。
调试器
与我们的C++团队添加的功能类似,我们意识到在Windows上调试捕获的托管Linux核心转储非常困难。 这通常意味着设置另一个精确镜像生产的Linux环境,然后安装一组用于分析的工具。 幸运的是,有了Visual Studio 2019 16.8预览版3.1,您可以简单地将托管Linux核心转储直接拖放到IDE中,然后立即开始调试。
在Visual Studio 2019中调试托管Linux核心转储文件
XAML体验
XAML绑定失败诊断改进
从事WPF、UWP、WinUI和Xamarin.Forms项目的开发人员必须经常检测并解决其应用程序中的XAML数据绑定故障。 为了改进此场景中的诊断工具,我们在Visual Studio 2019中添加了两种新体验(16.8 Preview 3.1+),现在这两种体验都默认对我们的Preview客户启用。
细节:
其他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以进行尝试。 让我们知道我们正在做什么,因为您的意见对我们的团队最有价值。