2018年8月-Visual Studio博客 https://devblogs.microsoft.com/visualstudio/2018/08/ Visual Studio工程团队产品洞察力的官方来源 2019年10月25日星期五00:23:14+0000 英语-美国 每小时 1 https://devblogs.microsoft.com/visualstudio/wp-content/uploads/sites/4/2018/10/microsoft-Favicon.png 2018年8月-Visual Studio博客 https://devblogs.microsoft.com/visualstudio/2018/08/ 32 32 在Visual Studio编辑器中提高工作效率 https://devblogs.microsoft.com/visualstudio/improving-your-productivity-in-the-visual-studio-editor/ https://devblogs.microsoft.com/visualstudio/improving-your-productivity-in-the-visual-studio-editor/#comments 2018年8月30日星期四16:00:57+0000 https://blogs.msdn.microsoft.com/visualstudio/?p=18875 在Visual Studio 2017的最近几次更新中,我们一直在努力添加新功能,以提高您在编写代码时的工作效率。其中许多是来自UserVoice请求、开发者社区门票、,

帖子在Visual Studio编辑器中提高工作效率首次出现于Visual Studio博客

]]>
在Visual Studio 2017的最近几次更新中,我们一直在努力添加新功能,以提高您在编写代码时的工作效率。其中许多都是您直接反馈的结果,这些反馈来自UserVoice请求、开发人员社区门票,以及我们在与像您这样的开发人员交谈时遇到的直接反馈。

我们很高兴与您分享这些功能,并期待您的反馈!

多中心支持

我们的一个热门UserVoice项目要求能够创建多个插入点和选择点,通常简称为多中心或多中心支持。VisualStudio代码用户告诉我们,他们在VisualStudio中工作时错过了此功能。我们听说您在Visual Studio代码中打开单个文件以利用此功能或安装的扩展(如MixEdit),但在Visual Studio 2017 15.8版中,您不再需要这样做。我们已经为多aret系列中一些最受欢迎的功能添加了本机支持,我们才刚刚开始。

我们想强调三个主要功能。首先,可以添加多个插入点或插入符号。使用Ctrl+Alt+单击,您可以向文档中添加其他插入符号,这允许您一次在多个位置添加或删除文本。

GIF显示如何在多个位置添加插入符号

其次,使用Shift+Alt+。您可以添加与当前选择相匹配的其他选择。我们认为这是一种查找和替换的替代方法,因为它允许您逐个添加匹配的选择,同时还可以验证每个附加选择的上下文。如果您想跳过匹配项,请使用(Ctrl+Shift+Alt+。)将最后一个匹配的选择移动到下一个实例。

最后,您还可以一次获取文档中的所有匹配选择(Ctrl+Alt+Shift+,)提供范围确定的查找和全部替换。

快速命令

就像剪纸一样,当你把遗漏的小命令加起来时,它们会受到伤害!我们听到了您的痛苦,所以在过去的几个版本中,我们尝试解决了您所要求的一些顶级功能。

重复的行

在我们的用户群中,即使是一次按键的减少也会成倍增加,而我们看到的一个优化工作流程的机会就是复制代码。经典的“复制+粘贴”在许多情况下都有效,但我们也听到反馈,您想要一种在不影响剪贴板的情况下复制选定内容的方法。这种情况经常出现的一种情况是,您想克隆一个方法并通过粘贴以前复制的名称来重命名它。

为了解决这个问题,我们引入了重复代码(Ctrl+D组合键)在Visual Studio 2017 15.6版中,简化了复制代码的过程,同时保持剪贴板不变。如果没有选择任何内容,Ctrl+D将复制光标所在的行,并将其插入焦点所在行的正下方。如果您想复制一组特定的代码,只需在调用复制代码命令之前选择要复制的代码部分。

展开/收缩选择

如何快速选择代码块?在过去,你可以一个字一个字地递增地添加到你的选择中,或者你可能使用了一系列Shift加箭头键。也许你花了额外的一秒钟把你的手从键盘上拿开,这样你就可以用鼠标了。不管怎样,你想要更好的东西。在Visual Studio 2017版本15.5中,我们引入了扩展/收缩选择,允许您将选择扩展到下一个逻辑代码块(班次+中高音++)如果你恰巧选择太多,则将其减少相同的块((移位+中高音+).

gif显示扩展/收缩选择,允许您将选择增加到下一个逻辑代码块,并减少相同的块

在文档中的问题之间移动

您已经能够通过导航到“下一个错误”Ctrl+Shift+F12但我们听说这种体验有时会让人感到不安,因为当解决方案按错误列表中出现的顺序处理问题时,下一个错误可能会让您对解决方案感到困惑。下一期/上一期(中高音+PgUp/PgDn)您可以导航到当前文档中的下一个问题(错误、警告、建议)。这允许您按照顺序和严重程度在问题之间切换,并在处理问题时提供更渐进的上下文。

现在,您可以查看最近文件的搜索结果并确定其优先级。当您打开最近的文件过滤器时,“全部转到”结果将显示该会话期间打开的文件列表,然后根据您的搜索条件对最近文件的结果进行优先级排序。

此外,Go To Member现在默认作用域为当前文件。您可以通过关闭scope to Current Document将此默认范围切换回解决方案级别(Ctrl+Alt+C)。

转到上次编辑的位置

我们都知道开始编写一个特性,然后意识到我们需要解决方案中其他地方的更多信息的感觉。因此,我们从解决方案资源管理器或转到几个地方的定义中打开了另一个文件,突然之间,我们离开始时的位置很远,很难返回,除非您记得最初使用的文件的名称。在Visual Studio 2017 15.8版中,您现在可以通过编辑>>转到最后一个编辑位置(Ctrl+Shift+Backspace)。

展开的导航上下文菜单

Visual Studio代码和ReSharper的键盘配置文件

学习键盘快捷键需要时间并建立特定的肌肉记忆,因此一旦你学习了一组快捷键,当快捷键更改或创建与之前的快捷键匹配的映射时,很难重新训练自己。当我们从经常在VisualStudio和VisualStudio代码之间切换的用户以及过去使用ReSharper的用户那里听说时,这个问题就暴露了出来。为了提供帮助,我们添加了两个新的键盘配置文件,Visual Studio代码ReSharper(Visual Studio),我们希望这将提高您在Visual Studio中的工作效率。

Visual Studio代码和ReSharper的键盘配置文件

C#代码清理

最后,但同样重要的是,在Visual Studio 2017版本15.8中,我们配置了设置文档格式对文件执行额外的代码清理,例如使用remove和sort或apply代码样式首选项。代码清理将考虑在.editorconfig文件中配置的设置,或者如果缺少该规则或文件,则会考虑在工具>选项>文本编辑器>C类#> [代码样式&格式化]. 规则配置为没有人在.editorconfig中,不会参与代码清理,必须通过快速行动和重构菜单。

显示C#代码清理格式文档选项的选项对话框

更新并提供反馈

使用Visual Studio 15.8版,您将可以访问上述所有功能以及更多功能,因此请务必进行更新,以充分利用Visual Studio所提供的一切。

在测试这些新功能时,请使用VisualStudio中的“发送反馈”按钮向产品团队提供直接反馈。这可以是您遇到的任何问题,也可以是对新生产力特性的请求。我们希望听到所有这些,这样我们就可以为您构建最好的Visual Studio!

帖子在Visual Studio编辑器中提高工作效率首次出现于Visual Studio博客

]]>
https://devblogs.microsoft.com/visualstudio/improving-your-productivity-in-the-visual-studio-editor/feed/ 4
Visual Studio for Mac 7.6版 https://devblogs.microsoft.com/visualstudio/visual-studio-for-mac-7-6版/ 2018年8月20日星期一21:25:17+0000 https://blogs.msdn.microsoft.com/visualstudio/?p=18805 对于这个版本的Visual Studio For Mac,我们将精力集中在提高产品可靠性、创建更好的代码编辑体验以及使性能首屈一指上。我们还宣布完全支持Azure功能,现在可以在IDE中创建、编辑、配置和发布您的功能。

帖子Visual Studio for Mac 7.6版首次出现于Visual Studio博客

]]>
今天我们宣布Visual Studio for Mac 7.6版的发布。本版本的重点是提高各个领域的产品可靠性,特别关注代码编辑体验。我们还进行了一些修复,以提高IDE性能。最后,我们扩展了对Azure功能的支持,添加了新模板,并且能够将你的函数发布到Azure从IDE中。

本文重点介绍了此版本中的主要改进。要查看完整的更改列表,请查看Visual Studio for Mac 7.6版发行说明。您可以从开始下载新版本或将现有安装更新为中可用的最新版本稳定通道

提高代码编辑器的可靠性

我们将注意力集中在提高Visual Studio for Mac中代码编辑器的可靠性上,并解决了代码编辑器的几个问题。特别是,我们想强调以下对您中许多人报告的问题的修复:

提高IDE的性能

其中一个报告最多的错误在以前的版本中,编辑器中存在性能问题。拥有快速可靠的代码编辑器是任何IDE的基本组成部分,也是任何开发人员工作流的重要组成部分,因此我们在这方面做了一些改进:

  • 我们使用采购订单号4740通过重用现有的Visual Studio for Windows代码,可以提高编辑器中的键入性能。
  • 我们现在支持打开解决方案时NuGet包的no-op恢复。此更改加快了NuGet在解决方案加载时的恢复速度。

我们还添加了还有很多小补丁可以缩短启动时间并减少IDE的内存消耗。

更丰富的Azure功能支持

Azure功能这是一种在几分钟内快速启动并运行无服务器功能的好方法。通过此版本,我们引入了新模板,供您在创建Azure Functions项目时选择:

 

这些新模板允许您配置访问权限、连接字符串和配置函数所需的任何其他绑定属性。有关选择模板的信息,请参阅可用的功能模板指南。

我们在本版本中引入的Azure函数工作流的另一个主要部分是将函数从Visual Studio for Mac发布到Azure门户。要发布函数,只需右键单击项目名称并选择发布>发布到Azure。然后您就可以发布到现有的Azure应用程序服务或使用发布向导创建新的发布向导:

 

有关从Visual Studio For Mac发布到Azure的信息,请参阅发布到Azure指南。

分享您的反馈

解决Visual Studio for Mac中的可靠性和性能问题仍然是我们的首要任务。您的反馈对我们来说极为重要,有助于我们优先处理对您的工作流程影响最大的问题。您可以通过以下几种方式联系我们:

  • 使用报告问题Visual Studio for Mac中的工具。
    • 我们允许您在不离开IDE的情况下报告问题,从而增强了报告问题的体验。您将能够自动包含其他信息,例如崩溃日志,这将帮助我们的工程团队更有效地缩小报告的根本原因。这将在即将发布的7.6服务版本中引入,该版本将在未来几周内在稳定频道中提供。
  • 您可以在上跟踪您的问题Visual Studio开发人员社区门户网站,您可以在这里提问和查找答案。
  • 除了提交问题外,您还可以添加对现有问题的投票或评论。这有助于我们评估问题的影响。

帖子Visual Studio for Mac 7.6版首次出现于Visual Studio博客

]]>
使用Unity Pro和Visual Studio Professional捆绑包保存 https://devblogs.microsoft.com/visualstudio/save-with-the-unity-pro-visual-studio-professional-bundle/ 2018年8月16日星期四16:00:11+0000 https://blogs.msdn.microsoft.com/visualstudio/?p=18755 Visual Studio和Unity的结合为跨各种平台和设备的游戏开发提供了一流的体验。虽然我们为刚刚起步的人提供免费软件,但随着团队规模和成功率的增长,对专业工具的需求也在增长。

帖子使用Unity Pro和Visual Studio Professional捆绑包保存首次出现于Visual Studio博客

]]>
Visual Studio和Unity的结合为跨各种平台和设备的游戏开发提供了一流的体验。虽然我们为刚刚起步的人提供免费软件,但随着团队规模和成功率的增长,对专业工具的需求也在增长。

我们很高兴地宣布,与Unity Technologies合作,您可以使用全新产品节省10%(最高270美元!)Unity Pro&Visual Studio专业捆绑包*.

通过该捆绑包,您不仅可以获得Visual Studio Professional IDE,还可以获得一年的Visual Studio Profional Standard订阅,其中包括Microsoft软件的开发/测试使用权限、每月50美元的Azure积分以及PC上IDE中的CodeLens,后者可以更好地了解团队的代码。Unity Pro提供扩展分析、性能报告、协作工具、Unity Success Advisor访问等等。这个特别的捆绑包可供PC和Mac上的开发人员使用,您可以在unity3d.com/vsbundle

 

Visual Studio和Unity:无缝集成

VisualStudio和Unity的集成使您能够提高效率并改进开发人员的内部循环。使用脚本时,可以使用Visual Studio功能,如IntelliSense。您还可以在MonoBehavior脚本中直接实现Unity API消息,并利用MonoBehovior向导添加方法定义。VisualStudio还允许您在“Unity项目浏览器”中查看Unity脚本,并使用强大的调试器轻松调试游戏。准备好查看您的更改了吗?启用“附加到Unity并播放”以自动切换到Unity编辑器并开始播放游戏。

 

要了解有关在Visual Studio中使用Unity进行游戏开发的更多信息,请访问我们的文档

*限时优惠,Visual Studio专业版订阅有效期为一年。 有关购买信息以及了解有关Unity Pro&Visual Studio Professional捆绑包的更多信息,请访问unity3d.com/vsbundle

帖子使用Unity Pro和Visual Studio Professional捆绑包保存首次出现于Visual Studio博客

]]>
Visual Studio 2017 15.8版 https://devblogs.microsoft.com/visualstudio/visual-studio-2017-version-15-8/ 2018年8月14日星期二18:45:08+0000 https://blogs.msdn.microsoft.com/visualstudio/?p=18635 今天,我们将发布Visual Studio 2017 15.8版。在这个版本中,我们重点关注生产力、性能和错误修复。你会发现有很多新功能很有用,但在这篇文章中,我将强调你可能最感兴趣的亮点。

帖子Visual Studio 2017 15.8版首次出现于Visual Studio博客

]]>
今天我们发布Visual Studio 2017 15.8版。在本版本中,我们重点关注生产力、性能和错误修复。你会发现有很多新功能很有用,但在这篇文章中,我将强调你可能最感兴趣的亮点。有关今天发布的所有更新的完整列表,请查看Visual Studio 2017 15.8版发行说明和列表您提交的错误已修复。如果您希望在不安装版本的情况下首先尝试这些更新,请查看Azure中的Visual Studio图像

值得一试的几个显著补充:

  • 多镜头编辑改进
  • 更快的git分支切换
  • 更快的单元测试执行
  • TypeScript 3.0支持

请继续阅读以了解更多详细信息。

生产力

此版本增加了显著的生产力和调试增强功能。

多卡编辑。现在可以轻松地同时编辑文件中的多个位置。首先,在支持多插入符号的文件中的多个位置创建插入点和选择。这将允许您同时在多个位置添加、编辑或删除文本。

  • 插入插入符号Ctrl+Alt+鼠标左键单击
  • 在下一个位置添加与当前选定内容匹配的选定内容和插入符号Shift+Alt+Ins
  • 请参见编辑>多个插入符号查看完整的操作列表。

上下文导航。现在可以使用快捷方式访问上下文导航菜单Alt+键`

Visual Studio代码和ReSharper(Visual Studio)的新键绑定配置文件。说到快捷键,您现在可以将键绑定与两个新的键盘配置文件保持一致:Visual Studio代码ReSharper(Visual Studio)。您可以在“工具”>“选项”>“常规”>“键盘”和顶部下拉菜单下找到这些方案。

键盘映射

新命令和对“全部转到”窗口的改进以下为:

  • 转到封闭块(Ctrl+Alt+向上箭头)允许您快速导航到封闭代码块的开头。
  • 转到下一期/上一期(Alt+PgUp/PgDn)允许您跳到下一个/上一个问题(错误、波形符号、灯泡)。
  • 转到成员(Ctrl+T,M组合键)现在默认情况下作用域为该文件。通过将范围切换为当前文档,可以将默认值更改回解决方案(Ctrl+Alt+C组合键).

还有……使用Ctrl+进行更多重构和快速操作。或Alt+Enter以下为:

  • 反转If使您能够反转if-else语句中的逻辑。将光标放在if关键字中以触发此重构。
  • 从方法调用站点添加参数允许您通过向方法调用站点添加参数并触发来向方法添加参数快速行动和重构
  • 删除不必要的括号删除编译中不必要的二进制运算符周围的括号。您可以通过配置此样式规则工具>选项>文本编辑器>C类#>代码样式>概述或.editorconfig:
    • dotnet样式括号输入算术二进制运算符
    • dotnet样式括号_in_relational_binary_operators
    • dotnet样式括号输入其他二进制运算符
    • dotnet样式括号输入其他运算符
  • 在赋值和返回语句中使用三元条件句也可以在中配置为样式规则工具>选项>或通过.editorconfig:
    • dotnet样式首选条件表达式覆盖赋值
    • dotnet样式首选条件表达式覆盖返回

选择Visual Studio的开发实例与调试实例。当您安装了多个Visual Studio 2017实例时,现在可以选择在调试时将扩展部署到哪个实例。例如,通过这种方式,您可以在VisualStudio发布频道中进行开发,同时在预览频道中进行调试。

性能

在这个版本中,我们继续关注性能,并在许多方面做出了重大改进。

Git分支校验和分支切换对于大型解决方案,C#、VB和C++项目的Git分支签出和分支切换要快得多,因为不再需要重新加载解决方案。

不重新打开上一个会话中的文档的选项。我们得到了有关在某些情况下,当Visual Studio从以前的会话中重新打开文档时,它是如何不需要的,以及它会导致性能延迟的反馈。因此,在此版本中,我们添加了一个选项,以禁用重新打开在前一个会话中打开的文档。您可以在中切换此选项工具>选项>项目>解决方案>常规

测试性能。在具有多个测试项目的大型解决方案中运行一些测试时,我们显著提高了性能。在我们的实验室中,一个包含10000多个MSTests的解决方案执行单个测试的速度提高了82%!

CPU使用工具性能改进。关于CPU使用工具,我们有一些值得注意的改进需要强调。性能档案器(ALT-F2)中的CPU使用率工具现在可以在暂停状态下启动,这意味着它在特别启用之前不会收集任何CPU使用率示例堆栈数据。这使得收集和分析的数据量大大减少,从而使性能调查更加高效。启动目标应用程序后,监控显示屏将显示CPU利用率图,并允许您控制CPU分析,并根据需要多次启用/禁用样本数据采集。

暂停/继续收集CPU使用数据

.NET对象分配跟踪工具NET对象分配跟踪工具加入了性能档案器(ALT-F2)提供的工具系列。为性能分析器会话调用此工具会为每个收集堆栈跟踪。目标应用程序中发生的NET对象分配。此堆栈数据与对象类型和大小信息一起分析,以显示应用程序内存活动的详细信息。您可以快速确定代码中的分配模式并识别异常。此外,对于垃圾收集事件,您可以轻松确定收集了哪些对象和保留了哪些对象,从而快速确定支配应用程序内存使用的对象类型。这对于API编写器帮助最小化分配尤其有用。在测试应用程序执行时,Performance Profiler会显示一个监控视图,其中包含实时对象(计数)的折线图以及对象增量(更改百分比)条形图。

这个。NET对象分配跟踪工具

C++开发

符合C++11标准。一个新的、实验性的、基于令牌的预处理器,符合C++11标准(包括C99预处理器功能),使用/terimental:preprocessor开关启用。这将由宏控制_MSVC公司_TRADITIONAL,使用传统预处理器时定义为1,使用符合新实验标准的预处理器时为0。

C制动器向CMakeSettings.json添加配置现在只需选择一个模板即可。

C++只是我的代码。C++只是我的代码调试使您现在能够来自系统或第三方C++库的步进代码除了在call-stack窗口中折叠这些调用之外。当使用/JMC(调试配置的默认值)编译代码并且在.natjmc文件中指定非用户库路径时,可以控制任何C++库的这种行为。如果系统库调用用户代码,当您介入时,调试器将跳过所有系统代码,并在用户代码回调的第一行停止。

代码分析经验。代码分析现在可以在后台运行打开或保存文件时,结果将显示在错误列表中,并在编辑器中显示为绿色波形符号。您可以在“工具”>“选项”>“文本编辑器”>“C++”>“实验”>“代码分析”下启用新的正在进行的功能。

代码分析结果显示在错误列表中,并在编辑器中显示为绿色波形符号

用于Visual Studio的F#4.5和F#工具

F#语言4.5版。在此版本中,我们将引入F#语言版本4.5。这也与FSharp的新4.5.x系列相对应。核心(F#核心库)。有了这个,很多人对F#编译器的改进。您可以在F#RFC存储库

用于Visual Studio的F#工具。一些显著的改进包括IntelliSense性能、事务性括号完成、实验性CodeLens实现,以及社区提供的可能的错误修复。 社区驱动的分析和改进超大文件的智能感知性能的工作由瓦西里·基里琴科,斯特芬·福克曼、和Gauthier Segay公司现在,在非常大的文件(10k多行代码)中的智能感知速度大约是现在的两倍。现在可以自动完成事务性支撑(),[],{},[||]、和[<>]支撑对。我们与纪伯伦罗莎。现在有一个实验性的CodeLens实现,由维克多·彼得·鲁文·穆勒。您可以在中打开它选项>文本编辑器>F#>编码镜头。请查看发行说明,以查看许多其他错误修复和改进用于Visual Studio的F#工具使用此版本。

JavaScript和TypeScript工具

TypeScript 3.0。默认情况下,此版本的Visual Studio包含TypeScript 3.0。

对Vue.js的支持库得到了改进,特别是对.vue文件的支持,也称为“单文件组件”。如果安装了Node.js工作负载,则“新建项目”对话框中的“JavaScript/Node.js”或“TypeScript/Node.js”路径下现在将有“Basic Vue.js Web Application”模板。下面显示了在.vue文件中的脚本块内编辑TypeScript代码的示例。

ESLint支持.ESLint支持已在此版本中重新实现。因此,VisualStudio现在将在您编辑时对JavaScript文件进行lint处理。默认情况下,ESLint已更新为使用ESLint 4,但如果您的项目具有本地安装的ESLint,它将使用该版本。你可以放松;通过取消选中下面所示位置的“工具/选项”对话框中的“启用ESLint”设置,可以在VS中全局禁用ESLint。

查看TypeScript 3.0发布公告了解所有细节。

Visual Studio Web工具

图书馆管理员.Library Manager是Visual Studio 2017中包含的一项新功能。它可以帮助您管理web项目中的客户端库。

单项目Docker容器。我们为ASP添加了一个新的单项目Docker容器体验。NET核心web项目。这补充了现有的基于Docker Compose的容器工具,并提供了从Visual Studio创建、调试和构建Docker容器的更简单、更容易的方法。

Android手机开发

支持Google Android Emulator。此版本增加了对与Hyper-V兼容的谷歌Android模拟器当在Windows 2018年4月10日更新上运行时。这使您可以将谷歌的Android仿真器与其他基于Hyper-V的技术并行使用,包括Hyper-V虚拟机、Docker工具、HoloLens仿真器等。使用Hyper-V的移动应用程序开发人员现在可以访问一个快速的Android模拟器,该模拟器始终支持最新的Android API,与Google Play Services配合使用,并支持Android模拟器的所有功能,包括摄像头、地理位置和快速引导。

Xamarin-HyperV型

Xamarin。安卓设计师。我们制造了显著改善设计师体验用于Xamarin.Android。最重要的是,引入了一个分割视图编辑器,允许您同时创建、编辑和预览布局

Anroid设计器拆分视图

.NET和ASP。净值

NET核心SDK 2.1.400。包含Visual Studio 15.8。NET核心SDK 2.1.400。新的SDK功能包括添加了NUnit模板、添加了对签名全局工具的支持,以及改进的帮助文本以提高清晰度

ASP。净利润。NET Framework机密支持.对于ASP。净收入。目标的NET Framework项目。NET Framework 4.7.1或更高版本,现在可以通过右键单击项目并选择“托管用户机密”,在usersecrets.xml中打开并存储源代码中不需要的机密。

.NET框架4.7.2。Visual Studio 2017版本15.8现在提供了。NET Framework 4.7.2开发工具,适用于所有支持的平台,包括4.7.2运行时。这个。NET Framework 4.7.2提供了一些新功能和改进,以及许多可靠性、稳定性、安全性和性能修复。您可以找到有关的更多详细信息。NET Framework 4.7.2在这些文章中:

分享您的反馈

一如既往,我们想知道你的想法。请安装Visual Studio 2017 15.8版并分享您的想法和担忧。

请通过报告问题Visual Studio中的工具。您可以在中跟踪您的问题Visual Studio开发人员社区在那里你可以提问并找到答案。您还可以通过我们的新Gitter社区(需要GitHub帐户),通过用户语音,或通过获取免费安装帮助实时聊天支持

谢谢,

约翰

帖子Visual Studio 2017 15.8版首次出现于Visual Studio博客

]]>