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


开发人员社区 | 系统要求 | 兼容性 | 可分发代码 | 许可条款 | 博客 | 已知问题



注意

此版本不是最新版本的 Visual Studio。 若要下载最新版本,请访问 Visual Studio 网站。


支持的时间范围

此版本现已不受支持。 有关 Visual Studio 支持的详细信息,请查看 Visual Studio 2017 的支持策略

请参阅最新版本的发行说明或访问 Visual Studio 站点,下载最新支持的 Visual Studio 2017 版本。

Visual Studio 2017 版本 15.6 发布


15.6 版中的主要新增功能摘要

15.6 中解决的首要问题

15.6 中解决了客户报告的下列问题:

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

The Developer Community Portal


15.6 中的最近更新详情

Release Notes IconVisual Studio 2017 版本 15.6.0

发布日期:2018 年 3 月 5 日

15.6 中的新功能

性能

在 15.6 版中,我们进一步改善了解决方案负载性能,特别适用于缓存设计时生成结果的情况。 当计算机中已打开某个解决方案时,大型 C# 和 Visual Basic 解决方案的加载速度比以前的快两倍。

.NET Core 解决方案负载

我们专注于 .NET Core,根据我们的实验室度量值,客户预期的平均解决方案负载时间可提升 20%。

UI 响应通知

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

UI Responsiveness notification with option to disable
(图 1)禁用扩展或禁止以后通知的 UI 响应能力通知选项

安装和设置

  • 在此发布中,没有管理员权限的用户也能创建 Visual Studio 布局,这使非管理员可以创建脱机网络安装。
  • 第一次安装 Visual Studio 或从 web 更新 Visual Studio 时,用户将感受到新的、更加透明的 Visual Studio 安装程序设置体验。 实质上并没有任何更改,但新版本将逐步向你展示出魅力所在(图 2)。
Improved transparency setup for Visual Studio Installer
(图 2)改进了 Visual Studio 安装程序的透明度设置
已支持暂停(图 3)安装并在稍后继续安装(图 4)
Pause your installation
(图 3)暂停安装
Resume your installation
(图 4)继续安装
安装详细信息

通过新的安装详细信息(图 5),可以看到下载大小、下载完成百分比和下载速率。 也可以看到正在安装的包总数和剩余数量。

注意

如果暂停安装并在稍后继续,则该进度适用于下载和安装的剩余部分内容,并且不会从以前的计数开始。

Installation details
(图 5)安装详细信息
IDE 设置
  • 我们已简化更新过程,Visual Studio 中的更新通知将直接转到安装程序而不是“扩展”或“更新”。

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

    注意

    从 15.6 预览版 3 更新到预览版 4 或更高版本时,计算机将在不通知或未与用户确认的情况下自动重启。

编辑器改进
  • 我们在默认键盘映射中为 Edit.Duplicate 添加了 Ctrl+D 作为快捷方式。 之前的同时按下(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
  • Patrick McDonald 添加了 Seq.transposeArray.transposeList.transpose 支持。
  • F# 代码中定义的 System.Tuple 类型的 A 回归不再支持已修复的 .Item1/.Item2 等。 因为这些元组类型与 F# 元组语法现在是 100% 同义词,所以在使用这些属性时我们引入了警告。 请参阅链接拉取请求,了解更多详细信息。
  • 已修复静态解析类型参数推理顺序中的回归和另一个 bug 修复,作者 Gustavo Leon 和 Microsoft。
  • 已启用用于 .NET Standard 的 FSharp.Core 中的 F# 类型的 IsSerializable 属性。 .NET Standard 和 .NET Core 现在可序列化 F# 类型,例如 OptionAsync
  • FSharp.Core 包已更新到版本 4.3.4,并包括 FSharp.Core 中用于此次发布的所有更改。
F# 工具改进
  • 已实现基于 .NET Core SDK 项目的文件排序,包括添加以上部分/以下部分、文件夹支持和 Visual Studio UI 更新而无需重新加载项目。
  • 已实现对基于 .NET Core SDK 项目的多目标支持。
  • 基于 .NET Core SDK 的项目现在支持共享文件。
  • F#/.NET Framework 项目可引用 .NET Standard 项目。
  • 错误报告改进,作者 Vasily KirichenkoEugene Auduchinok
  • 性能改进,作者 Vasily KirichenkoEugene AuduchinokDaniel Wedelich 和 Microsoft。
  • 更多精确的自动完成功能和大量 bug 修复,作者 Vasily Kirichenko 和 Microsoft。
  • 未打开命名空间中的静态成员可在完成中使用,作者 Vasily Kirichenko
  • 在“文档突出显示”和“查找所有引用”中显示命名空间符号,作者 Vasily Kirichenko
  • 结构化准则代码可用于其他编辑器(VSCode、用于 Mac 的 VS、Rider),作者 Eugene Auduchinok
  • 用于 F# 构造函数的更佳折叠和结构化准则,作者 Eugene Auduchinok
  • 简化名称分析器不再简化打开语句,作者 Vasily Kirichenko
  • 现在支持在 QuickInfo 中显示 sbytebyte IL 字段,作者 Vasily Kirichenko
  • 未使用的声明代码修复在未调用的 F# 函数或方法上不再触发,作者 Vasily Kirichenko
  • 现在支持在 .NET Framework 项目中拖放文件夹,作者 Paulo Nobre
  • 可切换未使用的声明分析器和代码修复。
  • Bug 修复和性能改进,作者 Eugene Auduchinok 和 Microsoft。
  • #if INTERACTIVE 定义的环绕代码现在支持不需要类型检查的 IDE 功能,作者 Eugene Auduchinok
  • 已修复旧版 F#/ ASP.NET (.NET Framework) 项目上空白“新文件”窗口修复的意外还原,作者 Loïc Denuzière
F# 基础结构和开放源代码改进
  • 已实现版本控制更新 RFC
  • 在编译器和工具中使用的所有本地化文件都可用于 GitHub,并可接收社区贡献。
  • 可在一个小时内生成夜间生成,最多不超过 4 个小时。
  • 我们删除了 Windows 10 SDK 上针对开放源代码参与者的依赖项。
  • 附属程序集和 FSharp.Core.resources.dll 现在已包含在 F# 编译器 SDK 中。
  • 如果程序集信息未更改,编译器便不再在 Visual F# 代码库中自行重新生成。
  • 已实现用于 FSharpSymbolUseToString(),因此调试编辑器工具时更容易查看所有符号的使用结果,作者 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 的内置支持
  • Visual Studio Android 工具支持 Android 应用,这些工具基于 SDK 级别 25 和更低级别构建,可在 Oreo 设备上部署和运行。
  • 进一步实现每个 C++ 17 标准一个 C++ 17 标准库,包括 API,例如 stable_sort、分区、并行内联矢量:: emplace_back 和 <memory_resource>。
  • 如果这些测试位于工作空间根目录下,即使它们未显式添加到包含路径中,C++ 开启文件夹也会自动发现丢失的包含文件。
  • 调试选项可用于嵌入式 ARM GCC 支持。 右键单击二进制文件,选择“调试和启动设置”,然后选择“C/C++ 调试”微控制器。
  • 按配置优化已启用并在 ARM64 上完全受支持。
  • 向 C++ Core Guidelines Check 扩展添加了详细规则,将使代码更简洁、更安全且更易于维护。
    • C++ Core Checker 扩展,用于检测生存期超出范围的间接寻址。
    • 围绕整数溢出的 5 个新检查强制规则,以及 C++ Core Guidelines 中的其他规则。
    • C++ Core Check 现包括一组代码分析规则,用于检测算术溢出。
  • 支持运行单个文件代码分析(或解决方案资源管理器中的所选文件);已清理“生成和分析”菜单。 “运行代码分析”不再运行代码生成,从而加快了分析运行速度。
  • 非活动配置中的 IntelliSense 错误在编辑器中显示为紫色波形。 要处理的配置数量可以在“工具”>“选项”中进行配置
  • 重要编译时改进
    • 编译器通过改进预先递增的循环优化和在 LTCG 中标识和传播恒定全局数据,对代码进行优化,加快运行速度。
    • 相较于 15.5 版,编译时更短。 编译器前端在大多数输入上速度提升 3-5%。 由于减少了核心优化算法的开销,编译器优化器速度提升了 3%。 另外,由于重新架构了数据结构,大型 LTCG 编译的速度提升了 10%。
  • 在完整的链接方案中,映射文件生成开销已降低。 但仍建议使用 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

Python completions for the pandas package
(图 6)panda 包的 Python 完成

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

Example of highlighted doc-string and regular expression
(图 7)突出显示文档字符串和正则表达式的示例

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

调试和诊断

CPU 使用情况工具

CPU 使用情况工具可以显示异步代码(也称为“异步调用堆栈拼接”)的逻辑调用堆栈(图 8)

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

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

  • 这一改变使得导航异步代码和理解其性能特征变得更容易。

    注意

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

Logical Call Stack Tree with Call Stack Stitching in effect
(图 8)有效使用调用堆栈拼接的逻辑调用堆栈树

CPU 使用情况工具(可在“诊断工具”窗口和 ALT-F2 性能分析器中的 F5 调试期间使用)现在显示基于特定代码行(图 9)的 CPU 消耗的源行突出显示。

  • 查看 CPU 使用情况工具的“调用树”或“调用方/被调用方”视图时,所选函数的源将显示该函数的每个源行上所指示的 CPU 消耗量。

  • 如果函数的 CPU 性能是一个问题,现在可以确定在执行函数时该函数的哪些源行专门负责 CPU 消耗。

    注意

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

CPU Usage tool with source line highlighting
(图 9)使用源行突出显示的 CPU 使用情况工具
线程名支持

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

快照调试程序

如果正在使用在 Azure 应用服务中运行的 ASP.NET 应用程序,并且希望尝试 Snappoints 或 Logpoints,则可以通过在“调试目标”下拉列表(图 10)中选择“Snapshot Debugger (Azure 应用服务)”来实现

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

.NET 效率

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

Navigate to decompiled sources
(图 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 应用服务部署的应用选择 Snapshot Debugger。
    • 已更新到与 ASP.NET Core 项目具有相同的浏览器选择笔试。

持续交付工具

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

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

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

Configure Continuous Delivery to Azure dialog for App Service on Linux
(图 13)Linux 上 Azure 应用服务的“配置持续交付”对话框

Team Explorer

Git 标记支持

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

对于 Visual Studio Team Services 用户,可以签出拉取请求分支。 此功能让检查拉取请求、测试更改和生成代码变得更加容易。

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

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

可扩展性

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

注意

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

测试资源管理器

新层次结构视图

Visual Studio 中的测试资源管理器现在具有层次结构视图(图 14),可通过项目、命名空间和类组织测试。 使用“层次结构”按钮可打开和关闭该视图,此按钮位于测试资源管理器窗口顶部的“分组依据”按钮旁边。

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

此功能不仅能使导航测试更加容易,还能一目了然地获得更好的测试反馈。

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

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

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

我们引入了对测试 Win10 IoT 核心版应用程序的支持。 现在可以将此类 UWP 应用程序的测试部署到设备上进行调试和执行。 测试也完全集成到了测试资源管理器中。 也可通过 VSTS CI 获得部署和执行支持。 因此,Win10 IoT 核心版应用程序已完全支持在 Visual Studio 中以及在 Visual Studio Team Services 中的持续集成工作流中进行编辑、编译、调试、测试循环。

Win10 IoT Core Testing
(图 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 的自更新应用程序,这些应用程序可以通过最低程度的用户交互来安装和运行。 ClickOnce 使用证书验证应用程序发行者的真实性,并使用证书为应用程序和部署清单签名,以证明文件未被篡改。 此发行版添加了对使用加密下一代 (CNG) 证书签名应用程序和部署清单的支持。

密钥保管库

我们为 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! 该模拟器支持位置模拟、旋转、手势等功能,甚至还包括 iOS 模拟器在 Mac 上不支持的功能,如多点触控。 这为开发人员在 Windows 上生成 iOS 应用提供了很好的模拟器体验,但对于设备又如何? 通过 Visual Studio 2017 15.6 版,可以在网络上使用 Wi-Fi 部署来部署 iOS 应用,而不再需要电缆! 在 Xcode 中设置无线设备后,无线设备将在 Visual Studio 中像常规部署的目标一样显示。


Release Notes IconVisual Studio 2017 版本 15.6.1 服务更新

发布日期:2018 年 3 月 8 日

15.6.1 版中解决的首要问题

这些是已在此版本中解决的客户报告的问题:


Release Notes IconVisual Studio 2017 版本 15.6.2 服务更新

发布日期:2018 年 3 月 13 日

15.6.2 版中的更新摘要

CVE-2018-0875:.NET Core 的 Microsoft 安全建议

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 版中解决的首要问题

这些是已在此版本中解决的客户报告的问题:


Release Notes IconVisual Studio 2017 版本 15.6.3 服务更新

发布日期:2018 年 3 月 19 日

15.6.3 版中的更新摘要

CVE-2018-0875:.NET Core 的 Microsoft 安全建议

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 版中解决的首要问题

这些是已在此版本中解决的客户报告的问题:


Release Notes Icon Visual Studio 2017 版本 15.6.4 服务更新

发布日期:2018 年 3 月 22 日

15.6.4 版中解决的首要问题

这些是已在此版本中解决的客户报告的问题:


Release Notes Icon Visual Studio 2017 版本 15.6.5 服务更新

发布日期:2018 年 4 月 4 日

15.6.5 版中解决的首要问题

这些是已在此版本中解决的客户报告的问题:


Release Notes Icon 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 请求和异常指示器。

Release Notes IconVisual Studio 2017 版本 15.6.7 服务更新

发布日期:2018 年 4 月 26 日

15.6.7 版中的更新摘要

  • 运行 Git 操作时,VS 能更有效地响应。
  • 使用 /Debug:fastlink PDB 调试大型解决方案更加可靠。 PDB/DIA 中的更改会导致减少延迟并且造成故障的 VS 调试程序中的堆内存消耗会减少 30%。

15.6.7 版中解决的首要问题

这些是已在此版本中解决的客户报告的问题:

  • C + + 编译器 bug 修补程序:
    • SSA 优化程序的修补程序错误地接收函数调用,该调用可将存储传递到 __finally 处理程序中使用的变量。
    • SSA 优化程序的修补程序有时会错误地分析来自具有负偏移的位置的内存负载。
    • 优化程序的修补程序错误地将递增前的循环转换到递增后的循环中。 此问题是在编译 ICU 项目时发现的。
  • 已提升至 Java™ 开发工具包 8 更新 172(JDK 版本 8u172)。

已知问题

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

Visual Studio 2017 Known Issues


反馈和建议

我们期待你的宝贵意见和建议! 如有问题,请通过安装程序或 Visual Studio IDE 右上角的“报告问题”选项告知我们。 Report a Problem Icon图标位于右上角。 可以在 Visual Studio 开发者社区中提出产品建议或跟踪问题,也可在其中提问、寻找答案和建议新功能。 此外,还可通过实时聊天支持获得免费安装帮助。


Blogs

通过参考开发人员工具博客网站中的见解和建议,随时掌握所有新版本的最新最全资讯,并发表有关大量功能的深入分析帖子。

Developer Tools Blogs


Visual Studio 2017 发行说明历史记录

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


返回页首