Visual Studio Icon Visual Studio 2017 版本 15.6 发行说明

注释

Visual Studio 2017 支持的版本为版本 15.9。

重要

这不是 Visual Studio 的最新版本。 若要下载最新版本,请访问 https://visualstudio.microsoft.com/downloads/ 并查看 Visual Studio 2022 发行说明

Visual Studio 2017 版本 15.6 发布


15.6 版中值得注意的新功能摘要

15.6 版中解决的首要问题

以下是 15.6 版中解决的客户报告的问题:

请参阅 Visual Studio 2017 版本 15.6 中修复的所有客户报告的问题。

开发者社区门户


15.6 版中的新增功能的详细信息

发行说明图标 Visual Studio 2017 版本 15.6.0

发布日期:2018 年 3 月 5 日

15.6 中的新增功能

Performance

在 15.6 中,我们继续改进解决方案负载的性能优化,特别是在设计时生成的结果被缓存的情况下。 大型 C# 和 Visual Basic 解决方案的加载速度将比在计算机上打开解决方案时的速度快两倍。

.NET Core 解决方案加载

我们专注于 .NET Core,根据实验室的测量,客户平均可以期望 20% 更快的解决方案加载时间。

UI 响应能力通知

为了提高扩展对性能和可靠性的影响的透明度,Visual Studio 会执行实时分析,以确定扩展是否可能导致无响应。 如果确定某个扩展导致挂起,Visual Studio 将显示一个通知,该通知允许用户禁用可疑扩展或取消该扩展的未来通知(图 1)。

带有禁用选项的 UI 响应能力通知
(图 1)用于禁用扩展或禁止将来的通知的 UI 响应能力通知选项

安装和设置

  • 在此版本中,没有管理权限的用户能够创建 Visual Studio 布局,允许非管理员创建脱机网络安装。
  • 首次安装 Visual Studio 或从 Web 更新它时,你将看到 Visual Studio 安装程序的新、更透明的安装体验。 在执行背后,实际并没有变化,但新的体验会逐步向您展示正在发生的事情 (图 2)
改进了 Visual Studio 安装程序的透明度设置
(图 2)改进了 Visual Studio 安装程序的透明度设置
我们增加了对暂停你的安装(图 3)并在稍后时间恢复(图 4)的支持。
暂停安装
(图 3)暂停安装
恢复安装
(图 4)恢复安装
安装详细信息

使用新的安装详细信息 (图 5),可以看到下载大小、已完成下载百分比和下载速率。 还可以查看要安装的包总数以及剩余的包数。

注释

如果暂停安装并稍后恢复,进度将应用于剩余的下载和安装,而不是从之前的进度开始。

安装详细信息
(图 5)安装详细信息
IDE 设置
  • 通过在 Visual Studio 中让更新通知直接转到安装程序,而不是扩展和更新,我们简化了更新过程。

  • 工作负载“ASP.NET 和 Web 开发”和“.NET Core 跨平台开发”已更新,包括“用于 Web 开发的云工具”。 此组件包含从 Visual Studio 中使用 Azure Functions 所需的所有内容。

    注释

    从 15.6 预览版 3 更新到预览版 4 或更高版本时,计算机可能会自动重启,而无需通知或确认用户。

编辑器改进
  • 我们在默认键盘映射中添加 了 Ctrl+D 作为 Edit.Duplicate 的快捷方式。 上一个和弦(Ctrl+E,V)仍然有效,在所有键盘映射方案中都可用。
  • 我们添加了“展开选择”命令,允许你连续将所选内容扩展到下一个逻辑块。 可以使用快捷键 Shift+Alt+= 展开和 Shift+Alt+- 来收缩当前所选内容。

F# 语言和工具改进

此版本的 F# 及其工具进行了大量改进。 其中最重要的内容与 .NET Core SDK 项目相关。 与往常一样,社区的重要贡献也聚集在一起。

F# 编译器和核心库改进
  • Bug 修复和性能改进,由 ncaveVasily Kirichenko 和 Microsoft。
  • F# 集合现在实现了IReadonlyListIReadonlyDictionary,作者为 Saul Rennison
  • NativePtr.ByRef 通过 mjmckp 添加了支持。
  • Async.StartImmediateAsTask 支持已添加,由 Onur Gumus 添加。
  • Seq.transposeArray.transposeList.transpose 的支持由 帕特里克·麦克唐纳 添加。
  • F# 代码中定义的类型的回归System.Tuple不再支持.Item1/.Item2/etc. 已修复。 由于这些元组类型现在与 F# 元组语法完全等价,因此在使用这些属性时会触发警告。 有关更多详细信息,请参阅链接拉取请求。
  • 古斯塔沃·莱昂和Microsoft已经修复了静态解析类型参数推理顺序中的一个回归问题,并修复了另一个bug。
  • FSharp.Core for .NET Standard 中 F# 类型的IsSerializable属性已启用。 F# 类型,例如 OptionAsync,现在可序列化以适用于 .NET Standard 和 .NET Core。
  • FSharp.Core 包已更新到版本 4.3.4,并包括此版本的 FSharp.Core 中的所有更改。
F# 工具改进
  • 已实现基于 .NET Core SDK 的项目的文件排序,包括“上/下添加”、“文件夹支持”和“Visual Studio UI 刷新”,而无需重新加载项目。
  • 已实现对基于 .NET Core SDK 的项目的多目标支持。
  • 基于 .NET Core SDK 的项目现在支持共享文件。
  • .NET Standard 项目可由 F#/.NET Framework 项目引用。
  • 瓦西利·基里琴科尤金·奥杜奇诺克的错误报告改进。
  • 性能改进,由 瓦西莉·基里琴科尤金·奥杜奇诺克丹尼尔·韦德利奇和微软。
  • Vasily Kirichenko 和 Microsoft 对许多错误进行了修复,并且优化了自动完成的准确性。
  • 未打开的命名空间中的静态成员可在完成时由 Vasily Kirichenko 提供。
  • 命名空间符号显示在文档突出显示和查找所有引用中,作者: Vasily Kirichenko
  • 尤金·奥杜钦诺克 已为其他编辑器(VSCode、VS for Mac、Rider)提供了结构化指南代码。
  • 由 Eugene Auduchinok 为 F# 构造函数提供更好的折叠和结构化准则。
  • Vasily Kirichenko 的简化名称分析器不再简化 Open 语句。
  • 现在支持在 QuickInfo 中显示sbytebyte IL 字段,由Vasily Kirichenko完成。
  • Vasily Kirichenko 不再对未安装的 F# 函数或方法触发未使用的声明代码修复。
  • Paulo Nobre 现在支持在 .NET Framework 项目中跨文件夹拖放功能。
  • 未使用声明的分析器和代码修复功能现在可以进行启用或禁用。
  • Eugene Auduchinok 和 Microsoft 的 Bug 修复和性能改进。
  • #if INTERACTIVE 括起来的代码现在支持无需类型检查的 IDE 功能,由 Eugene Auduchinok 报告。
  • Loïc Denuzière 修复了旧 F#/ASP.NET (.NET Framework) 项目上空“新建文件”窗口的意外重新转换。
F# 基础结构和开放源代码改进
  • 已实现版本控制更新 RFC
  • 编译器和工具中使用的所有本地化文件都可以在 GitHub 上使用,并且能够接受社区贡献。
  • 夜间构建的生成时间已缩短至一小时;之前需要超过4小时。
  • 我们取消了对开源贡献者的 Windows 10 SDK 依赖。
  • F# 编译器 SDK 现在包含附属程序集和FSharp.Core.resources.dll
  • 如果程序集信息未更改,编译器将不再在 Visual F# 代码库中重新生成自身。
  • ToString() 为了实现 FSharpSymbolUse,由 Eugene Auduchinok 引入,使调试编辑器工具时查看所有符号使用结果更加容易。

若要查看 15.6 版的完整提交更改日志,请参阅 我们的标记

注释

请参阅 Visual Studio 2017 版本 15.6 中的所有现有已知问题和可用解决方法。

Visual C++ 改进

  • 此版本包含 针对 CVE-2018-1037 中所述的 PDB 安全问题的修补程序。
  • 从“添加新项目”对话框创建 CMake 项目。
  • 现在可以选择在 Visual Studio 中打开新的 CMake 项目时是否自动生成 CMake 缓存。
  • 在 CMake 项目中,CTest、Google Test 和 Boost.Test 的测试会自动发现并列出在测试资源管理器中。
  • 使用 Boost.Test 项模板轻松将 Boost 单元测试添加到项目。 你的 Boost 单元测试现在使用 Boost 动态库。
  • 支持 C++17 保证的拷贝省略
  • Android 开发中对 Android NDK r15c 的内置支持
  • 支持使用 SDK 级别 25 和更低版本生成的适用于 Android 应用的 Visual Studio Android 工具,以便在 Oreo 设备上部署和运行。
  • 实现 C++17 标准库的进一步进展,包括API如stable_sort、partition、并行内联的vector::emplace_back,以及符合C++17标准的<memory_resource>。
  • 在C++项目中,如果某些包含文件缺失但存在于工作区根目录下,即使它们没有显式添加到包含路径中,系统也会自动发现这些文件。
  • 调试选项可用于 嵌入式 ARM GCC 支持。 右键单击二进制文件,选择“调试”和“启动设置”,然后选择“C/C++调试微控制器”。
  • 在 ARM64 上,性能分析导向的优化已启用并完全支持。
  • 向 C++ 核心准则检查扩展添加了 更多规则 ,可帮助你使代码更简洁、更安全且可维护。
    • C++核心检查工具扩展,用于检测生存期超出范围的间接引用的使用。
    • 5 个新检查强制实施有关整数溢出的规则,以及C++核心准则中的其他规则。
    • C++核心检查现在包括一组用于检测算术溢出 的代码分析规则
  • 支持运行单个文件代码分析(或在解决方案资源管理器中运行您选择的文件);整理了“生成”和“分析”菜单。 “运行代码分析”不再运行代码生成,从而加快分析运行速度。
  • 活动配置的 IntelliSense 错误在编辑器中显示为紫色波浪线。 在“工具选项”>中可配置要处理的配置数。
  • 显著的编译时改进
    • 编译器通过改进了对预递增循环的优化,并在LTCG中改进对全局常量数据的识别和传播能力,从而优化代码,使其运行速度更快。
    • 编译时间比 15.5 短。 编译器前端在处理大多数输入时速度提升了 3-5%。 由于核心优化算法开销降低,编译器优化器更快 3%。 此外,由于重新构建的数据结构,大型 LTCG 编译速度提高了 10%。
  • 完全链接场景中减少了 Mapfile 生成开销。 我们仍建议使用 PDB 文件,而不是映射文件。
  • MSVC 编译器支持所有体系结构上的 /Qspectre 开关 ,包括 x86、x64、ARM 和 ARM64。

C# 编译器

C# 编译器现在支持:

  • CoreCLR 上的编译器服务器,用于提高构建的性能吞吐量。
  • CoreCLR 上的强名称签名(/keyfile 选项,所有操作系统)。

除了许多 bug 修复 和一个中断性变更(请参阅 正在运行的中断性变更列表),还对 7.2 语言功能进行了两次次要语言更改:

Visual Studio Tools for Xamarin

此版本包括 Xamarin.iOS 11.8 和 Xamarin.Android 8.2。

使用 iOS 模拟器进行实时 XAML 预览

借助 Xamarin Live Player,开发人员只需使用 Visual Studio 和 iOS 或 Android 设备即可持续部署、测试和调试其应用。 Visual Studio 2017 版本 15.5 添加了支持,使开发人员能够在 Android 模拟器中直接预览实时 XAML 更改 ,而无需重新编译或重新部署。 此版本将此功能引入适用于 Windows 的远程 iOS 模拟器。

Python

对于此版本,我们消除了对补全数据库的需求,从而可以在已安装的包中获取 IntelliSense(图 6)。 这意味着,对于常用包(例如 numpypandas),现在只需几秒钟即可完成,而不是在安装包后等待长达四个小时。

pandas 包的 Python 完成
(图 6)pandas 包的 Python 代码补全

我们添加了自定义类或函数中使用的文档字符串颜色的功能,以及在调用re库时检测到的正则表达式模式(图 7)。 可以在 “工具 > 字体 > 颜色”、“Python 文档”和“Python 正则表达式”下更改这些内容。

突出显示的文档字符串和正则表达式的示例
(图 7)突出显示的文档字符串和正则表达式的示例

最后,对于 Anaconda 用户,我们正在试验 conda 的检测和集成。 启用后,conda 环境将自动显示在 Visual Studio 中,我们将使用 conda 而不是 pip 来管理包。 有关详细信息,请参阅 Visual Studio 15.6 博客文章中 Python 的新增 功能。

调试和诊断

CPU 使用情况工具

CPU 使用情况工具可以显示异步代码(即“异步调用堆栈缝合”)的逻辑调用堆栈(图 8)。

  • 若要查看逻辑调用堆栈(即“已缝合的调用堆栈”),请打开 CPU 使用情况工具的“筛选器”下拉菜单中的“缝合异步代码”设置。

  • 代表父函数或任务运行的异步代码将在调用树和调用者/被调用者视图中显示为子节点。

  • 通过此更改,可以更轻松地导航异步代码并了解其性能特征。

    注释

    此功能可能需要很长时间才能为某些异步代码模式生成逻辑调用堆栈。 可以取消分析,并在必要时关闭设置。 此行为仅在使用 ALT-F2 性能探查器启动页进行事后样式分析期间可用。 调试期间使用 CPU 使用率工具时,它不显示逻辑调用堆栈。

具有调用堆栈拼接效果的逻辑调用堆栈树
(图 8)具有调用堆栈缝合效果的逻辑调用堆栈树

CPU 使用率工具(在诊断工具窗口和 ALT-F2 性能探查器中的 F5 调试期间可用)现在根据特定代码行的 CPU 消耗 (图 9)显示源行突出显示。

  • 查看 CPU 使用率工具的调用树视图或调用者/被调用者视图时,所选函数的源代码会显示 CPU 消耗量,并指示在函数每一行的源代码中。

  • 如果函数的 CPU 性能令人担忧,现在可以具体确定函数的源行对执行函数时的 CPU 消耗负责。

    注释

    此功能要求将源信息包含在由项目设置控制的生成的 PDB 中。 没有源信息的 PDB 的项目不会显示行属性或源文件。

具有源代码行高亮功能的 CPU 使用率工具
(图 9)具有源代码行高亮显示功能的 CPU 使用率工具
线程名称支持

根据用户的反馈,调试器现在可以在转储调试中显示通过 SetThreadDescription API 设置的线程名称。 此功能要求在 Windows 10 Fall Creators Update 或更高版本上收集转储。

Snapshot Debugger

如果正在处理在 Azure 应用服务中运行的 ASP.NET 应用程序,并且想要尝试 Snappoints 或 Logpoints,可以通过在“调试目标”下拉列表( 图 10)中选择“快照调试器(Azure 应用服务)”来执行此作。

启动 ASP.NET 应用程序的 Snapshot Debugger
(图 10)启动 ASP.NET 应用程序的 Snapshot Debugger

.NET 效率

在 15.6 预览版 2 中,我们添加了导航到反编译源的功能。 启用后,在任何引用的类型或成员上调用 “转到定义 ”或 “速览定义 ”将通过 ILSpy 反编译通过重新构造的方法主体显示其定义。 若要启用此功能,请转到“工具>选项>文本编辑器>C#>高级>启用导航到反编译的源代码”(图 11)。

导航到反编译源
(图 11)导航到反编译源

我们还添加了几个 .NET EditorConfig 选项:

  • dotnet_prefer_inferred_tuple_names
  • dotnet_prefer_inferred_anonymous_type_member_names

注释

若要查看所有 .NET 编码约定选项,请查看 EditorConfig 的 .NET 编码约定设置

Visual Studio Web 工具

  • 解决方案资源管理器为名为“文件嵌套”的 .NET Core 项目提供了一项新功能,允许用户控制解决方案资源管理器中相关文件的显示方式。
  • 项目发布体验已更新。
  • 在“新建项目”对话框中:
    • 用于选取 .NET Framework 版本的下拉列表已移动到对话框底部,不再充当模板的筛选器。
    • 对于节点“Web”,子节点“网站”已重命名为“以前的版本”。
  • WebForms 和 MVC 5 项目的调试下拉列表:
    • 允许用户为 Azure 应用服务部署的应用选择快照调试器。
    • 已更新为具有与 ASP.NET Core 项目相同的浏览器选择手势。

持续交付工具

对于源代码管理下的解决方案,可以单击团队资源管理器中的“持续交付”磁贴,为应用程序配置自动生成和部署。

配置持续交付工具
  • 添加了对 TFVC 作为源代码管理提供程序的支持。 可以在 VSTS TFVC 团队项目中为源代码管理下的解决方案配置持续交付(图 12)。
为 VSTS TFVC 项目中的项目配置持续交付
(图 12)为 VSTS TFVC 环境中的项目配置持续交付
  • 我们添加了对通过 SSH 进行 Git 身份验证的支持。 可以在启用了 SSH AUTH 的 VSTS 或 GitHub Git 存储库中为源代码管理下的解决方案配置持续交付。

  • 我们引入了对容器化项目的支持。 可以使用面向 Linux 上的 Azure 应用服务(用于容器的 Web 应用)( 图 13)的 ASP.NET 核心项目和 docker 支持为解决方案配置持续交付。 “配置持续交付”对话框默认在 Linux(用于容器的 Web 应用)上创建新的 Azure 应用服务,如果 Azure 订阅中尚不存在 Azure 容器注册表。

为 Linux 上的应用服务配置“持续交付到 Azure”对话框
(图 13)为 Linux 上的应用服务配置“持续交付到 Azure”对话框

团队资源管理器

Git 标记支持

我们添加了对 Git 标记的更多支持。 现在可以创建、删除和推送标记。 在“标记”页上,可以查看存储库中的所有标记,并从标记创建新的分支。 这是我们从 UserVoice 请求最多的功能之一。

对于 Visual Studio Team Services 用户,可以检出拉取请求分支。 借助此功能,可以更轻松地查看拉取请求、测试更改和生成代码。

适用于通用 Windows 平台开发人员的工具

Windows 10 Insider 预览版 SDK(内部版本 17095)可以作为通用 Windows 平台开发工作负载的可选组件进行安装。

可扩展性

许多 Visual Studio 可执行文件(devenv.exe、blend.exe、wdexpress.exe和 vsga.exe)的文件版本反映了次要版本(例如 15.6.*)。

注释

这不会影响任何功能,但依赖于可执行文件版本号的外部代码可能需要更新。

测试资源管理器

新建层次结构视图

Visual Studio 中的测试资源管理器现在有一个层次结构视图 (图 14), 它按 Project、Namespace 和 Class 组织测试。 可以使用位于“分组依据”按钮旁边的“测试资源管理器”窗口顶部的层次结构按钮打开和关闭此视图。

测试资源管理器层次结构视图
(图 14)测试资源管理器层次结构视图

此功能不仅使测试导航更加容易,而且还能一目了然地提供有关测试的更好反馈。

  • 层次结构中的“父节点”(项目、命名空间和类)如果它们包含至少一个失败的测试,则显示一个失败的测试图标。
  • 父节点后面还跟着一个数字,总结了分组中包含的测试数量。 父节点右侧显示的持续时间(以毫秒为单位)是该组内测试执行的总时间。
实时测试发现

使用实时测试发现(图 15)即可自动发现测试,无需构建受管项目。 这样,测试资源管理器就可以与代码更改保持同步,例如添加、删除或编辑测试。 请注意,与上述层次结构视图功能不同,该功能可用于所有类型的项目,自动测试发现功能仅适用于 C# 和 Visual Basic 项目。

Xamarin Live Player
(图 15)Xamarin Live Player 配对、部署和实时编辑模式的动画
Win10 IoT 核心测试支持

我们引入了对测试 Win10 IoT Core 应用程序的支持。 现在可以在设备上部署、调试和执行此类 UWP 应用程序的测试。 测试还完全集成到测试资源管理器中。 部署和执行支持也通过 VSTS CI 提供。 因此,Win10 IoT Core 应用程序在 Visual Studio 中的编辑、编译、调试、测试周期以及 Visual Studio Team Services 中的持续集成工作流中具有完全支持。

Win10 IoT 核心测试
(图 16)Win10 IoT 核心测试

Visual Studio 生成工具

Visual Studio 生成工具允许创建生成服务器,而无需安装所有 Visual Studio。 安装程序已支持桌面项目的C++、ASP.NET 和 .NET Core。 为了响应客户请求,我们正在增强 Visual Studio 生成工具以支持其他项目类型。 在此版本中,我们添加了对 TypeScript 和 Node.js 项目的支持。 我们希望在未来版本中添加对更多项目类型的支持。 这是此版本的 Visual Studio 生成工具的 下载位置

Visual Studio ClickOnce 工具

ClickOnce 是一种部署技术,可用于创建可安装和运行且用户交互最少的基于 Windows 的自更新应用程序。 它使用证书来验证应用程序的发布者的真实性,并对应用程序和部署清单进行签名,以证明文件未被篡改。 在此版本中,我们添加了对使用加密下一代(CNG)证书对应用程序和部署清单进行签名的支持。

Key Vault

我们添加了适用于 Visual Studio 15.6 的 Azure 服务身份验证扩展 。 这将允许使用 Microsoft.Azure.Services.AppAuthentication 库的项目使用其 Visual Studio 帐户访问 Azure 资源,例如 Key Vault。

自动 macOS 预配

在 Windows 上使用 Visual Studio 生成 iOS 应用变得更加容易。 此版本添加了一项名为“自动 macOS 预配”的全新功能。 无需手动维护 Mac 构建机器,您只需连接到 Mac,剩下的就由我们来完成:我们将通过 Visual Studio 处理在您的构建机器上使用正确的 Xamarin.iOS 和 Mono 组件进行安装和配置的繁重工作。

iOS Wi-Fi 部署

远程 iOS 模拟器 允许开发人员完全在 Windows 上的 Visual Studio 中测试和调试 iOS 应用,可用于所有版本的 Visual Studio(从版本 15.5 开始),包括免费的 Community Edition! 模拟器支持位置模拟、旋转、手势等功能,甚至包括一些 Mac 上的 iOS 模拟器所没有的功能,如多点触控。 这为在 Windows 上生成 iOS 应用的开发人员提供了出色的模拟器体验,但设备呢? 使用 Visual Studio 2017 版本 15.6,可以通过网络部署 iOS 应用,Wi-Fi 部署 - 无需电缆! 在 Xcode 中设置无线设备后,它会显示在 Visual Studio 中,就像普通部署目标一样。


发行说明图标 Visual Studio 2017 版本 15.6.1 服务更新

发布日期:2018 年 3 月 8 日

15.6.1 版中解决的首要问题

以下是此版本中解决的客户报告的问题:


发行说明图标 Visual Studio 2017 版本 15.6.2 服务更新

发布日期:2018 年 3 月 13 日

15.6.2 版中的更新摘要

CVE-2018-0875: Microsoft .NET Core 的安全公告

Microsoft 发现 .NET Core 公共版本存在安全漏洞,其中恶意文件或 Web 请求可能导致拒绝服务 (DoS) 攻击。

重要

建议系统管理员将 .NET Core 运行时更新到 1.0.10、1.1.7 或 2.0.6 版本。 建议开发人员将 .NET Core SDK 更新到 1.1.8 或 2.1.101。

15.6.2 版中解决的首要问题

以下是此版本中解决的客户报告的问题:


发行说明图标 Visual Studio 2017 版本 15.6.3 服务更新

发布日期:2018 年 3 月 19 日

15.6.3 版中的更新摘要

CVE-2018-0875: Microsoft .NET Core 的安全公告

Microsoft 发现 .NET Core 公共版本存在安全漏洞,其中恶意文件或 Web 请求可能导致拒绝服务 (DoS) 攻击。

重要

建议系统管理员将 .NET Core 运行时更新到 1.0.10、1.1.7 或 2.0.6 版本。 建议开发人员将 .NET Core SDK 更新到 1.1.8 或 2.1.101。

15.6.3 版中解决的首要问题

以下是此版本中解决的客户报告的问题:


发行说明图标 Visual Studio 2017 版本 15.6.4 服务更新

发布日期:2018 年 3 月 22 日

15.6.4 版中修复的首要问题

以下是此版本中解决的客户报告的问题:


发行说明图标 Visual Studio 2017 版本 15.6.5 服务更新

发布日期:2018 年 4 月 4 日

15.6.5 版中已修复的首要问题

以下是此版本中解决的客户报告的问题:


发行说明图标 Visual Studio 2017 版本 15.6.6 服务更新

发布日期:2018 年 4 月 10 日

15.6.6 版中的更新摘要

CVE-2018-1037: Microsoft Visual Studio 信息泄露漏洞Microsoft安全公告

如果 Visual Studio 在编译程序数据库 (PDB) 文件时以不当方式公开未初始化内存的有限内容,就会出现信息泄漏漏洞。 如果攻击者已利用此信息泄漏漏洞,可以通过用于编译 PDB 文件的 Visual Studio 实例来查看未初始化内存。

攻击者必须获取对使用 Visual Studio 易受攻击版本创建的受影响 PDB 文件的访问权限,才能利用此漏洞。 攻击者无法强迫开发人员生成此信息泄漏。

安全更新程序通过更正 PDB 文件在项目编译时的生成方式来修复此漏洞。

重要

有关详细信息,请参阅 CVE-2018-1037 的安全更新。

15.6.6 版中修复的首要问题

以下是此版本中解决的客户报告的问题:

  • 此版本解决了解决方案首次加载时某些 Application Insights 用户未看到 CodeLens 请求和异常指示器的问题。

发行说明图标 Visual Studio 2017 版本 15.6.7 服务更新

发布日期:2018 年 4 月 26 日

15.6.7 版中的更新摘要

  • 在运行 Git作时,VS 更具响应能力。
  • 使用 /debug:fastlink PDB 调试大型解决方案更可靠。 PDB/DIA 中的更改会导致延迟降低,VS 调试器中用于导致崩溃的堆内存消耗减少了 30%。

15.6.7 版中解决的首要问题

以下是此版本中解决的客户报告的问题:

  • C++编译器错误修复:
    • 修复了 SSA 优化器错误地将函数调用下沉至存储操作之后的问题,该操作涉及在 __finally 处理器中使用的变量。
    • 修复了 SSA 优化器有时错误地分析来自具有负偏移的位置的内存负载的问题。
    • 修复了优化器错误地将预先递增的循环转换为后递增循环。 在编译 ICU 项目时发现了这一点。
  • 已提升至 Java™ 开发工具包 8 更新 172(JDK 版本 8u172)。

已知问题

我们一直坚持听取用户的反馈。 若要查找最新问题、记录新问题和投票赞成现有问题,请访问开发人员社区站点。 请参阅 Visual Studio 2017 版本 15.6 中的所有现有已知问题和可用解决方法。

Visual Studio 2017 已知问题


Visual Studio 2017 发行说明历史记录

若要详细了解以往 Visual Studio 2017 版本的相关信息,请参阅 Visual Studio 2017 发行说明历史记录页。