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

注释

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

重要

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

Visual Studio 博客

Visual Studio 博客 是 Visual Studio 工程团队的产品见解的官方来源。 可以在以下文章中找到有关 Visual Studio 版本 15.5 版本的深入信息:

Visual Studio 2017 版本 15.5 发布


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

15.5 版中已修复的首要问题

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

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

开发者社区门户


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

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

发布日期:2017 年 12 月 4 日

15.5 中的新功能

Visual Studio IDE

设置和安装
  • 安装程序现在在安装过程中生成 Windows 还原点。
  • 现在,添加和删除程序中显示每个 Visual Studio 安装的条目。 Visual Studio 安装程序现在支持修改和卸载每个条目。
  • 从脱机布局进行安装不再需要在断开连接的计算机上安装中间证书。
  • 我们在安装和更新过程中增加了可靠性和可取消性改进。
更新的错误对话框

我们更新了错误对话框,以显示详细信息,以帮助解决使用 Visual Studio 开发人员社区中的潜在解决方案解决安装问题。 (图 1)

“新建安装程序错误”对话框
(图 1)“新建安装程序错误”对话框
Performance
  • 减少了大型 C# 和 Visual Basic 项目的加载时间。
  • 缩短了在调试和发布之间切换配置的时间。
  • 缩短了在 .NET Core 项目中添加、删除和重命名文件和文件夹的时间。
  • 轻量级解决方案加载(LSL)已弃用,因为没有 LSL 后解决方案加载时间已经减少。
连接的服务
  • 我们更新了 Azure 存储服务提供商以支持面向 .NET Core 的 ASP.NET Core 项目。

Team Explorer 更新

团队资源管理器的最新更新受到有关 UserVoice 的反馈的启发。

现在您可以使用 Git 子模块和工作树,并在团队资源管理器中配置 fetch.prunepull.rebase。 Visual Studio 现在将 Git 子模块和工作树视为普通存储库。 只需将它们添加到本地仓库列表,然后开始编写代码!

请注意,对于子模块,你仍无法执行任何需要多存储库支持的作(例如同时查看父存储库中的文件以及子模块中的文件)。

此外,现在,可以更轻松地 设置默认 Git 行为 ,以在每个提取时进行修剪,并在每次拉取时重新定基。 每次提取时修剪都会删除服务器上不再存在的本地跟踪分支,并帮助你使分支列表保持干净且最新。 每次拉取的重排作都会使提交历史记录保持线性化且更易于遵循。 可以在全局和存储库设置中找到这些选项。

.NET Core 和 ASP.NET Core 安全公告

Microsoft 已发布面向 .NET Core 和 ASP.NET Core 的安全建议。 有关详细信息,请参阅 .NET CoreASP.NET Core 存储库中的对应公告。 请注意以下信息:

  • CVE-2017-8585 格式不正确的证书可能会导致拒绝服务:.NET Core 1.0、1.1 和 2.0 中存在安全漏洞,其中格式不正确的证书或其他 ASN.1 格式的数据可能会导致 Linux 和 macOS 上的无限循环拒绝服务。 建议系统管理员将 .NET Core 运行时更新到 1.0.8、1.1.5 或 2.0.1 版本。 建议开发人员将 .NET Core SDK 更新到 2.0.3 或 1.1.5 版本。

  • CVE-2017-8700 CORS 旁路可以启用信息泄露:ASP.NET Core 1.0 和 1.1 中存在安全漏洞,可以绕过跨域资源共享(CORS),从而导致信息泄露。

  • CVE-2017-11879 打开重定向可能会导致特权提升:ASP.NET Core 2.0 中存在一个安全漏洞,导致特权提升。

  • CVE-2017-11770 拒绝服务漏洞:当应用程序通过 Windows Http.Sys 托管时,ASP.NET Core 1.0、1.1 和 2.0 中存在安全漏洞,其中格式不正确的请求可能会导致拒绝服务。

使用 ASP.NET Core 1.0、ASP.NET Core 1.1 和 ASP.NET Core 2.0 创建的新项目现在使用包含上述安全更新的包版本。 对于现有项目,用户可以使用“管理 NuGet 程序包”对话框将包更新到较新版本。

MSVC 编译器工具集

在 Visual Studio 2017 15.5 中,生成工具中的 MSVC 编译器工具集已更新为版本 14.12,与 15.4 版本 14.11 工具集兼容。 如果在升级到 Visual Studio 2017 15.5 后编译代码时遇到问题,可以强制安装 14.11 工具集,以便与 14.12 工具集并排使用。 安装C++桌面工作负载后,可以在“ 单个组件 ”选项卡下选择 Visual Studio 2017 15.4 工具集(14.11)。

C# 编译器中的新增功能

C# 编译器现在支持 7.2 组语言功能,包括:

  • 在整个 Kestrel 和 CoreFX 中,通过Span<T>修饰符支持使用ref struct 类型。
  • readonly struct修饰符:强制结构的所有成员都为readonly。 这为代码添加了一层正确性,还允许编译器在访问成员时避免不必要的值复制。
  • in parameters / ref readonly returns:允许安全地传递不可修改的结构,并使用与可 ref 修改值相同的效率返回。
  • private protected 访问修饰符:限制对 protectedinternal 的交集的访问。
  • 非尾随命名参数:命名参数现在可以在参数列表的中间使用,而无需所有下列参数也按名称传递。

Visual Studio Tools for Xamarin

此版本包含对适用于 iOS 和 Android 的 Xamarin SDK 的更新支持:

实时运行当前视图

使用新的实时运行当前视图功能 (图 2)生成基于 XAML 的用户界面变得更加容易。 在构建用户界面时,您可以在 Android 模拟器中实时看到它的变化,而无需保存、编译或重新部署应用程序。

Xamarin Live Player

借助 Xamarin Live Player,开发人员可以直接在 iOS 和 Android 设备上持续部署、测试和调试其应用。 下载 Xamarin Live Player 应用(在应用商店或 Google Play 中可用)后,你可以将设备与 Visual Studio 配对,并仅使用 Visual Studio 和移动设备生成移动应用。 针对 Xamarin.Forms 进行了优化,现在可以修改其 XAML 并查看设备上时刻反映的更改,而无需编译或等待完全部署。 此版本为 Xamarin Live 功能带来了许多增强功能,包括:

  • 更智能的调试和实时运行:在调试到 Xamarin Live Player 时,Live Player 现在会自动将启动项目调整为正确的平台(图 3)。 例如,如果选择了 iOS,并且配对的 Live Player 设备是 Google Pixel,IDE 将建议将启动项目更改为 Android。
  • 部署状态:现在可以使用状态栏中的部署状态跟踪 Xamarin Live Player 的“调试”状态。
  • 控制台和错误窗口集成:应用内记录的输出现在显示在控制台窗口中,错误将显示在 Visual Studio 中的“错误”窗口中。
  • 实时运行上下文菜单和键盘快捷方式:我们希望能够轻松即时可视化 XAML UI,因此我们添加了上下文菜单和键盘快捷方式,以便快速轻松地预览 XAML 页面。
  • 实时运行文档切换:生成 UI 时,通常会在不同的 XAML 文档之间进行切换。 在 Visual Studio 中更改活动文档会自动运行打开的任何 XAML 页面,以便你可以轻松地在不同页面之间来回切换,并在设备上即时反映它们。
Xamarin Live Player
(图 3)Xamarin Live Player 配对、部署和实时编辑模式的动画
模板

文件-> 新项目 -> 移动应用(图 4) 现在通过更新适用于 iOS、Android 和 Windows 应用的跨平台模板向导变得更加简单,包括:

  • .NET Standard 支持 - 现在可以创建一个新的跨平台 Xamarin 应用,该应用使用 .NET Standard 2.0 作为代码共享策略。
  • 目标平台复选框 - 选择你在文件 -> 新建时关注的平台。
  • PackageReference - 所有模板现在默认使用 PackageReference,这是在 Xamarin 应用中管理 NuGet 包的新简单方法。
  • 展开性能增强 - 现在模板展开的速度应该比以前快得多。 在最极端的情况下,展开时间最多可以提升 40 倍。
文件 -> 新建 -> 移动应用
(图 4)文件 -> 新建 -> 移动应用设置
远程 iOS 模拟器

远程 iOS 模拟器提供了一种简单的方法,可在模拟器上完全从 Windows 上的 Visual Studio 调试和测试 iOS 应用。 它支持 iOS 模拟器在 Mac 上可以执行的所有作,甚至更多 - 包括多点触控支持! 从 Visual Studio 2017 版本 15.5 开始,远程 iOS 模拟器现已在所有 Visual Studio Edition(包括免费社区版)中提供。

Xamarin Android SDK 管理器

使用新的 Xamarin Android SDK 管理器,管理 Android SDK 变得更加轻松。 可以通过转到 Visual Studio 中的“工具” -> Android -> Android SDK 管理器来使用新的 SDK 管理器。

F# 工具改进

在 Visual Studio 2017 15.5 版本中,我们专注于对 .NET Core SDK 项目的 F# 工具支持。 现在支持以下各项:

  • 可以从 文件 > 新建项目创建新的 .NET Core 控制台应用、.NET Standard 库和 .NET Core 单元测试项目。
  • 添加了对现有 .NET Core 和 .NET Standard 项目的支持。
  • 添加了对面向 .NET Framework 版本的现有 .NET Core SDK 项目的支持。
  • 支持项目到项目引用。
  • 添加了对 Web SDK 项目(例如 F# ASP.NET Core 项目或使用 长颈鹿 模板的项目)的支持。
  • 现在,您可以在 Web SDK 项目中右键单击使用发布工具。
  • 支持使用 Visual Studio Team Services 工具自动生成 CI/CD 管道。

Visual F# 工具还进行了相当多的改进,这些工具不侧重于 .NET Core SDK 项目。 它们包括:

  • 转到从 F# 到 C# 的定义,由 索尔·伦尼森瓦西利·基里琴科
  • 蓝色(高对比度)主题的颜色处理,由 Microsoft 和 瓦西利·基里琴科
  • 属性页现在可以在不同显示器上自动调整大小。
  • 当缩进被 Duc Nghiem Xuan 设置为“Smart”时,新行的智能自动缩进。
  • 当缩进设置为“Smart”时,右括号的自动去缩进功能,由Saul Rennison开发。
  • 枚举字段现在可以在工具提示、查找所有引用、“转到所有”和“内联重命名”中被视为符号,该功能由Vasily Kirichenko实现。
  • 由换行符分隔的 XML 文档注释不会追加到鼠标悬停中的当前 XML 文档注释( 由 Vasily Kirichenko)。
  • CHBen 更正了 ref 关键字的 XML 文档。
  • 多个漏洞修复和性能改进。

请在 GitHub 存储库中提交您发现的任何问题。

F# 设置中的更改

我们更改了获取 F# 的方式:

  • 如果安装需要 .NET Core 2.0 的工作负荷,则 默认还会安装 F# 语言支持。 .NET Core、ASP.NET 和 Azure 工作负载现在执行此作。
  • .NET 桌面开发、数据存储和分析以及数据科学和分析应用程序工作负载中的“F# 语言支持”复选框已重命名为“F# 桌面支持”。

F# 4.1 编译器改进

在此版本中,F# 4.1 编译器中有许多 bug 修复:

  • 改进了 F# 编译器中的 PDB 生成,修复了 调试 F# 中的五个已知问题,可追溯到 2014 年。
  • 修复了由Vasily Kirichenko提出的关于编译器错误解析记录字段的问题。
  • StartAsTask 现在,由 马蒂亚斯·迪特里什 正确地等待取消过程完成。
  • 程序集引用现在仅在属性中使用类型时创建。
  • 具有相同大小写名称的单事例结构区分联合不再以无提示方式转换为对象类型。
  • 可能的无限异步循环 MailboxProcess。 接收功能已修复。

Visual C++ 改进

现在,您可以通过文件>>将现有的 CMake 项目和缓存配置导入到 IDE 中。

打开对 ARM Online 编译器导出的文件夹支持

选择适用于 Embedded 和 IoT 项目的 Linux C++ 工作负载中的选项,你可以编辑和编译面向 ARM 微控制器的项目。 我们支持打开从 ARM 联机编译器导出为 GCC 的项目,然后可以从 Visual Studio 本地进行交叉编译。 有关详细信息,请参阅有关 用于 ARM 开发的 Visual C++ 的博客文章。

远程任务

打开文件夹现在支持远程任务。 这些任务通过安全外壳(SSH)在远程系统上执行。 还可以将这些任务配置为将文件复制到目标计算机,用于在 Linux 系统上使用 make 编译代码等操作。 若要了解详细信息,请参阅有关 在 Visual Studio 中使用远程任务的博客文章。

标准模板库的改进

开放标准网站包含许多用于生成开放标准的组的页面。 我们对标准模板库添加了有关 C++17 标准的这些改进:

  • not_fn()P0005R4 建议采用库基础 TS v2 中的not_fn函数绑定器,以替代旧的否定器not1not2
  • 改写 enable_shared_from_thisP0033R1Re-enabling shared_from_this
  • 弃用遗留库部件: P0174R2。 多年来,C++标准库的一些功能已被新增功能所超越,或者我们已经了解到,它们没有达到预期的目的和最初的预期。 本文提议弃用某些特性,因为有更好的、更简单或更清晰的选择可供使用。
  • 删除分配器支持:std::functionP0302R1。 类模板 std::function 具有多个接受分配器参数的构造函数,但其语义尚不明确,并且在类型擦除上下文中存储分配器后,在复制赋值期间恢复该分配器以进行所需分配存在技术问题。 应删除这些构造函数。
  • 修复了 not_fn()P0358R1。 建议为 std::not_fn 使用新的措辞,其中之一是提供对值类别传播的支持,尤其是在包装调用的情况下。
  • shared_ptr<T[]>shared_ptr<T[N]>P0414R2。 合并 shared_ptr 从库基础知识到 C++17 的更改。
  • 修复数组 shared_ptrP0497R0。 修复了对 shared_ptr 数组的支持。
  • 弃用 shared_ptr::unique()P0521R0。 CA 14(shared_ptr use_count/unique)的建议决议。
  • 弃用 codecvtP0618R0<codecvt> 不是解决 Unicode 转码的最佳方式,此库组件应被重新分类到附件 D。
  • 删除动态异常规范: P0003R5。 C++11 中弃用了动态异常规范。 从 C++17 中删除该功能,同时将已弃用的 throw() 规范严格保留为 noexcept(true) 的别名。
  • 拼接映射和集合:P0083R3。 此设计允许进行各种类型的拼接操作、将元素(包括映射键)移出容器,以及执行许多其他有用的操作和设计。 它是对关联容器和无序关联容器的增强,以支持节点操作。 这是标准库的纯补充。
  • 澄清 insert_return_typeP0508R0。 具有唯一键的关联容器和具有唯一键的无序容器都具有一个名为插入的成员函数,该函数返回一个嵌套类型insert_return_type。 该返回类型是本节中指定的类型的专用化。
  • STL 的内联变量: P0607R0
Visual C++ 编译器改进

Visual C++ 编译器支持 C++17 特性的约 75%,包括结构化绑定、constexpr lambda、if constexpr内联变量、折叠表达式、十六进制浮点字面值,以及将noexcept添加到类型系统。 在开关 /std:c++17 下可用。 /permissive-一致性模式包括对两阶段名称查找的部分支持,以及对可变模板的改进包扩展支持。 此外, /permissive- 模式已作为新语言下拉菜单添加到C++项目的项目属性中。

Visual C++ 优化器改进

C++代码生成团队已对现有编译器优化进行了改进,并在 15.5 版本中添加了新的优化。

精选链接器改进:

  • 你将体验新的、更快的 /OPT:ICF 实现:链接时间最多可加速 9%。
  • 我们修复了 增量链接。 增量链接永远不会比完整链接慢。

选择对现有优化的改进:

  • 我们改进了条件表达式的矢量化启发式。
  • 我们增强了 loop-if-unswitching 优化。
  • 我们对循环展开进行了改进。
  • 我们改进了浮点数最小/最大值的代码生成。

选择新的优化:

  • 我们对 SSA 优化器改进了和消除冗余(部分冗余)指令。
  • 我们优化了条件标量存储的矢量化。
  • 我们将对 sin(x)cos(x) 的调用合并为 sincos(x)

Visual C++支持 Intel 的 AVX-512,包括将 AVX-512 中的新函数引入 128 位和 256 位宽寄存器的矢量长度指令。

我们将在C++代码分析中发布超过二十个新的C++核心准则检查。 这些检查涵盖智能指针正确性、全局初始值设定项的正确使用以及标记构造的使用(例如 gotobad_cast)。

15.3 中可能发现的某些警告编号在 15.5 中不再可用。 这些警告被更具体的检查替换。

对 Google Test 和 Boost.Test 框架的内置支持

在 Visual Studio 中编写、发现和运行 Google Test 和 Boost.Test 单元测试。 默认情况下,测试资源管理器现在支持 Google Test 和 Boost.Test 框架。 如果要从以前的 Visual Studio 安装升级,请打开 Visual Studio 安装程序,在 Visual Studio 实例上单击“修改”,然后在“使用 C++ 进行桌面开发”下选中“适用于 Google Test 的测试适配器”和“适用于 Boost.Test 的测试适配器”选项。 轻松创建新的 Google 测试项目:选择文件 > 新建 > 项目 > Visual C++ > 测试 > Google Test

有关详细信息,请参阅 如何在 Visual Studio 中使用 Google Test for C++ ,以及如何在 Microsoft Docs 的 Visual Studio 页面中使用 Boost.Test for C++

Visual Studio Web 工具

  • Razor 语法格式已得到改进。
  • 改进了将 ASP.NET 应用程序发布到 Azure 虚拟机的体验。

Docker 容器工具

  • Visual Studio 的 Docker 容器工具现在支持多阶段 Dockerfiles,以简化优化容器映像的创建。
  • 如果在运行 Windows 10 版本 1709 或 Windows Server 版本 1709 的计算机上运行 Visual Studio,则容器映像将默认使用 Windows Server 版本 1709。 可以通过编辑 Dockerfile 来更改此项。 请注意,使用旧版 Windows 的容器映像仅会在 Windows 10 版本 1709 和 Windows Server 版本 1709 上,以 Hyper-V 隔离模式运行。 有关详细信息,请参阅 Windows 容器版本兼容性 页。
  • 默认情况下,当你打开具有 Docker 支持的项目时,Visual Studio 会在后台自动拉取、生成和运行必要的容器映像。 可以通过 Visual Studio 的“自动在后台启动容器”设置来禁用此功能。

TypeScript/JavaScript 改进

Angular 2 支持

Angular2 开发人员现在可以在内联模板和 .ngml 模板文件中查看错误、代码补全和代码导航。 有关概述和说明,请参阅示例存储库

性能改进

我们在“JavaScript/TypeScript 文本编辑器项目选项”页下添加了一个复选框:仅分析包含在编辑器中打开文件的项目。 此选项将提高大型解决方案的性能和可靠性。 请注意,选中此框后,需要执行解决方案生成以查看所有文件中 TypeScript 错误的完整列表。

我们修复了导致 TypeScript/JavaScript 语言服务使用比预期更多的内存的问题,并可能导致在多项目解决方案中加载错误的 TypeScript 版本。

Windows Communication Foundation (WCF) 工具

WCF Web 服务引用连接服务提供程序(图 5)现在是 Visual Studio 15.5 的一部分。

WCF Web 服务参考
(图 5)WCF Web 服务参考

若要使用此工具,请右键单击 .Net Core 项目中的“依赖项”项目项,然后选择“添加连接服务”选项,然后输入要为其生成代码的 Web 服务的地址。 生成的 WCF 客户端代理代码将保存到自动添加到项目的 C# 文件中。 这允许基于 .NET Core 的代码轻松与 Web 服务通信。

有关更多详细信息,请访问 GitHub 中的 WCF Web 服务参考发行说明。

调试和诊断

使用快照调试器调试生产内应用

现在可以使用 Snappoints 和 Logpoints 针对 Azure 应用服务中运行的 ASP.NET 和 ASP.NET 核心应用程序进行调试,对应用的影响最小。

  • 设置 Snappoint (图 6) 以捕获应用的状态,包括局部变量、监视和调用堆栈。 与断点不同,当命中 Snappoint 时,你的应用不会停止。
捕捉点图像
(图 6)捕捉点
  • 使用 Logpoints (图 7) 记录应用中的新消息,而无需添加代码或重新部署应用程序。
Logpoints
(图 7)Logpoints
嵌入式源和嵌入式 PDB 支持

借助嵌入式源,Visual Studio 调试器现在可以直接从 PDB 文件提取和使用托管二进制文件的源文件。 将 Embedded Source 与 Embedded PDB 合并,以创建完全独立的可调试二进制文件。 详细了解如何使用 /embed 编译器开关。

现在,使用嵌入式 PDB 进行生成时,还可以使用“编辑并继续”调试托管代码。

使用 IntelliTrace 进行调试时的回退操作

借助新的 IntelliTrace 后退调试功能,IntelliTrace 会在每个断点和调试器步骤上自动创建应用程序的快照。 这样,便可以返回到以前的断点或步骤,并查看应用程序过去的状态。

此功能在 Windows 10 周年更新及更高版本上提供,目前支持调试 ASP.NET、WinForms、WPF、托管控制台应用和托管类库(图 8)。 若要启用该功能,请转到 “工具>选项>IntelliTrace 设置 ”并选择 “IntelliTrace 事件和快照”。

退步
(图 8)使用 IntelliTrace 进行调试时回退

从 Visual Studio 访问已启用条件访问的 Azure 资源

Visual Studio 现在支持访问已启用条件访问的 Azure 资源,这要求你使用 2FA 进行身份验证,即使帐户本身不需要 2FA。 以前,如果你的帐户需要 2FA 登录,Visual Studio 会提示输入 2FA,然后你可以访问任何需要 2FA 的资源;但是,如果你的帐户不需要 2FA,Visual Studio 将无法访问这些 2FA 资源。

现在,当帐户不需要 2FA 但资源需要时,可以在 Visual Studio 中对帐户进行身份验证,而无需 2FA,并且首次尝试访问需要 2FA 的 Azure 资源时,Visual Studio 会提示你重新进行身份验证,并要求 2FA 才能访问资源。

Windows 应用商店中 Office 的 Office 工具支持

Office Web 外接程序项目和 VSTO 项目现在支持在 Windows 应用商店中使用 Office 进行开发。 可以在 Windows 应用商店中使用 Office 创建、生成、调试和发布 Web 外接程序项目和 VSTO 项目。

  • 需要 Windows 10 或 Windows Server 2016 的 Fall Creators Update(版本 1709)才能在 Windows 应用商店中将 Office 工具与 Office 配合使用。

适用于 Unity 的 Visual Studio 工具

  • 当你从 Unity 添加或删除脚本时,Unity 项目现在会自动在 Visual Studio 中重新加载。
  • 修复了使用 IL2CPP/.NET 4.6 后端开发 UWP 游戏时 .Player 项目的生成问题。
  • 引入了使用 Xamarin 和 Visual Studio for Mac 共享的 Mono 调试器调试 Unity 编辑器的选项。

Live Unit Testing

  • Live Unit Testing 的生成现在通过使用独立进程,改进了 Visual Studio 中的内存利用率。

Windows 打包

我们在打包项目中添加了对 UWP 应用程序和组件的支持,这有助于从现有桌面应用程序中利用最新的 Windows 10 功能。 若要包含 UWP 组件,可以Add Reference添加到 UWP 应用程序(图 9)。

带有 UWP 引用的 Windows 打包项目
(图 9)带有 UWP 参考的 Windows 打包项目

可以使用应用商店包向导生成将桌面桥应用程序提交到应用商店所需的文件,就像现有 UWP 项目一样。


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

发布日期:2017 年 12 月 7 日

15.5.1 版中修复的首要问题

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


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

发布日期:2017 年 12 月 14 日

15.5.2 版中修复的首要问题

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


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

发布日期:2018 年 1 月 9 日

15.5.3 版中的更新摘要

Microsoft .NET Core 的安全公告

  • 微软发布此安全公告,提供有关 .NET Core 公共版本 1.0、1.1 和 2.0 中存在漏洞的信息,该漏洞涉及 X509 证书验证中的安全功能绕过。 此建议还指导开发者如何正确地更新应用程序。 此安全建议适用于 UWP 的 .NET Native。

    Microsoft 可察觉公共版 .NET Core 中的安全漏洞,利用此漏洞,攻击者提交特定用途标记为无效的证书,但组件会将此证书用于该用途。 此操作会忽略增强型密钥使用标记。

    安全更新通过确保 .NET Core 组件完全验证证书,解决了此漏洞。 建议系统管理员将 .NET Core 运行时更新到 1.0.9、1.1.6 或 2.0.5 版本。 建议开发人员将 .NET Core SDK 更新到 2.1.4 或 1.1.7 版本。

  • CVE-2018-0764 分析 XML 文档时拒绝服务Microsoft发布此安全公告,以提供有关 .NET Core 1.0 和 1.1 和 2.0 公共版本中漏洞的信息。 此建议还指导开发者如何正确地更新应用程序。

    Microsoft 可察觉由于 XML 文档处理不当,在所有公共版 .NET Core 中产生的拒绝服务漏洞。 如果攻击者成功利用此漏洞,可能会导致对 .NET 应用程序拒绝服务。 远程未经过身份验证的攻击者可以通过向 .NET Core 应用程序发布特制请求利用此漏洞。

    更新通过更正 .NET Core 对 XML 文档处理的操作方式解决了此漏洞。 建议系统管理员将 .NET Core 运行时更新到 1.0.9、1.1.6 或 2.0.5 版本。 建议开发人员将 .NET Core SDK 更新到 2.1.4 或 1.1.7 版本。

15.5.3 版中修复的首要问题

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


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

发布日期:2018 年 1 月 16 日

15.5.4 版中修复的首要问题

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


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

发布日期:2018 年 1 月 25 日

15.5.5 版中的更新摘要

  • MSVC 编译器已更新,支持 /Qspectre 开关,当编译器检测到 Spectre 变体 1 的实例时,该开关会自动插入猜测屏障。 有关 /Qspectre 的详细信息,请参阅 Visual C++ 团队博客

15.5.5 版中修复的首要问题

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

  • Xamarin 应用引发 Cannot access a disposed object. Object name: 'MobileAuthenticatedStream'错误。
  • ClassNotFoundException类派生时,Xamarin.Android 应用会抛出Application
  • 升级可能会导致 以前安装的 Windows 和 Android SDK 被卸载。
  • 将 JDK 8 升级到最新版本,以避免从 Oracle 网站下载失败。

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

发布日期:2018 年 1 月 29 日

15.5.6 版中的更新摘要


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

发布日期:2018 年 2 月 20 日

15.5.7 版中的更新摘要

  • 团队资源管理器支持 TLSv1.2。 我们已更新随附 Visual Studio 提供的 Git 和 Git 凭据管理器组件。 另外还更新了可选的适用于 Windows 的 Git 组件。 此更新允许 Git 连接到不再支持 TLSv1 和 TLSv1.1 而支持 TLSv1.2 的服务。

15.5.7 版中修复的首要问题

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

  • Visual Studio 2017 版本 15.5 不支持面向 .NET Core 2.1 或更高版本的项目。
  • 修复了安装适用于 .NET Core 2.1 或更高版本的 SDK 会导致创建 ASP.NET Core 2.0 Web 应用程序的选项消失的问题。

已知问题

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

Visual Studio 2017 已知问题


Visual Studio 2017 发行说明历史记录

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