Visual Studio 图标 Visual Studio 2015 Update 2 发行说明


许可条款 | Visual Studio 博客 | 开发者社区

注意

此版本不是最新版本的 Visual Studio。 若要下载最新版本,请访问 Visual Studio 2019 的当前发行说明


Visual Studio 2015 发布

可以查看 Visual Studio 2015 的所有版本的发行说明:

下载 Visual Studio 2015

可从 My.VisualStudio.com 下载 Visual Studio 2015。 My.VisualStudio.com 需要免费的 Dev Essentials 订阅或 Visual Studio 订阅


发行说明图标 Visual Studio 2015 Update 2

发布日期:2016 年 3 月 30 日

此版本中新增功能摘要

Visual Studio:

其他更改:


此版本中的新增功能

适用于 Apache Cordova 的 Visual Studio Tools

Visual Studio 2015 Update 2 包含 Visual Studio Tools for Apache Cordova Update 8,并在以下方面有所改进:

  • 对 Cordova 6.0.0 的支持
  • 更好的生成错误消息
  • 更好的 npm 集成(使用沙盒版本并遵循系统代理设置)
  • 更新的插件列表

有关迄今为止所有版本的详细信息,请参阅 Visual Studio Tools for Apache Cordova 博客

用于通用 Windows 应用开发的 Visual Studio Tools

我们在 Visual Studio Update 2 中为通用 Windows 平台工具添加了以下新功能:

  • 通用 Windows SDK 版本选取器。 创建新的 UWP 项目时,现在可以选择要面向的 Windows SDK 版本以及要提供应用的最低操作系统版本。
  • 调试通用 Windows 应用中的 C++ 后台任务。 现在可以在 Visual Studio 中调试通用 Windows 应用中的后台任务进程。 可以在项目的“属性调试”选项卡上访问此选项。
  • 应用商店包向导改进。 应用商店打包向导现在会缓存应用程序名称和包配置。 将包与应用商店关联后,无需再次登录即可创建 appx 包。

Visual C++

C++ 编译器

在此版本中,我们更新了 C++ 编译器和标准库,不仅增强了对 C++11 和 C++14 功能的支持,还初步提出了对预期推出的特定 C++17 标准功能的支持。 编译器最显著的变化是支持变量模板和常量表达式新增功能。

Visual Studio 2015 Update 2 允许将 /SDL 与 /AWAIT 配合使用。 我们还删除了协同例程的 /RTC 限制。 协同例程虽然仍处于实验阶段,但现在已准备好用于高质量的生产代码。

此外,我们已经修复了 300 多个编译器 bug,包括客户通过 Microsoft 开发者社区提交的许多 bug — 谢谢! (其中某些 bug 的修补程序修复了编译器中的代码生成问题,并且修复它们需要源中断性变更。有关详细信息,请参阅 MSDN 上的 Visual C++ 2015 Update 2 中的中断性变更)。

C++ 库

我们已经实现了所有被投票纳入 C++11、C++14 和 C++17 迄今为止的工作论文 N4567(Jacksonville 前)的 C++ 标准库功能。

对于 UWP 包,已删除 Microsoft.VCLibs 版本 14.0 框架包中的 ucrtbased.dll(debug)。 我们作出此更改是为了避免锁定 Windows 10 SDK 的某个特定版本。 对于引用 VCLibs 框架包的项目,Visual Studio/MSBuild 将自动插入对 Microsoft 通用 CRT 调试运行时扩展 SDK 的引用,进而将 ucrtbased.dll 纳入应用程序的 appx 文件中。 对于非 MSBuild 生成系统,必须手动将 ucrtbased.dll 纳入应用程序的 appx 文件 (App Local) 中。

C++ IDE

现在默认使用全新的基于 SQLite 的数据库引擎。 这将提高数据库操作(如“转到定义”和“查找所有引用”)的速度,并将极大地缩短初始解决方案分析时间。 设置已移至“工具”->“选项”->“文本编辑器”->“C/C++”->“高级”(之前位于 ...“C/C++”->“实验”下)。   

Clang/C2 平台工具集

Visual Studio 2015 Update 2 附带的 Clang/C2 工具集现在支持 /bigobj 开关,这对生成大型项目来说至关重要。 它还在编译器的前端和后端进行了多项重要的 bug 修复。

Android

Android 项目现在支持 Gradle 生成。 开发人员可以使用 Gradle 生成 Android 项目(.aar、apk)。 若要开始使用,请查看作为“文件”->“新建”->“Visual C++”->“跨平台”菜单中的一部分提供的 Gradle 模板。

iOS

Visual Studio 现在允许通过入口点向导,将现有的 Xcode 项目导入 Visual Studio。

使用 iOS 时,现在还可以在使用以下功能集后利用改进后的“编辑-生成-调试”循环:

  • iOS 开发人员可以在 Visual Studio 中使用预配置文件。
  • iOS 开发人员可以对其 iOS 运用框架和 dylibs。
  • Visual Studio 现在改进了动态刷新调试目标的体验。
  • 我们已应用了多个 Bug 修复,以支持干净的生成。

对于仍必须使用 Xcode 的情况(例如,对 iOS 应用程序签名以供上架,或使用 Xcode 检测),开发人员可以利用“在 Xcode 中打开”这项 Visual Studio 功能,从而将 Visual Studio iOS 项目导入 Xcode 并开始着手操作。

C# 和 Visual Basic

虽然 Update 2 的重点是响应客户反馈和修复 bug,但我们还对以下功能进行了改进:

  • 现在可以使用项目的上下文初始化 C# 交互窗口,从而允许即时访问该项目内的类型。 还可以使用新的“交互执行”命令,从解决方案发送要在交互窗口中执行的代码片段。

C# 交互式执行

C# Interactive

  • 我们添加了 using 和任何所需的项目或元数据引用,改进了“添加 Using”命令以支持拼写错误类型的“模糊”匹配,以及在整个解决方案和元数据中搜索正确的类型。

C# 添加 Using 命令

  • 我们进行了分析器 API 改进,包括使分析器编写器能够将其分析器标记为并发执行,以及提供对分析器是否在生成的代码中运行的控制。

  • 我们添加了一些新的 IDE 重构,包括一个使用新的 null 条件运算符简化委托调用的灯泡操作,以及一个在不使用任何“await”运算符时使异步方法同步的重构。

C# IDE 重构

.NET Framework 4.6.1

ClickOnce Bootstrapper 包

我们在 Update 2 中添加了适用于 Visual Studio 2015 Visual Studio 的 .NET Framework 4.6.1 ClickOnce Bootstrapper 包。 适用于 .NET Framework 4.6.1 的 ClickOnce Bootstrapper 包在 Visual Studio 2015 的可用先决条件列表中启用 .NET 4.6.1 条目,这使你可以更轻松地发布用于 ClickOnce 部署的应用程序。

Visual Studio IDE

  • TextMate 代码片段支持。 Visual Studio 现在支持通过将 tmSnippet 文件放入代码片段文件夹中来使用 tmSnippet 文件。 默认情况下,代码片段将在 GO、Groovy、Lua、Perl、R、Ruby 和 Swift 等语言的完成列表中提供。
  • 扩展的自动更新。 我们正在将自动更新功能扩展到更多扩展。 为自动更新启用的扩展将自动下载并安装,而无需用户交互。 不再需要为这些扩展手动更新和重启 Visual Studio。 为“所有用户”安装的扩展现在可以选择使用此功能。 作为用户,你仍然对在“工具”->“扩展和更新”中或通过“工具”->“选项”在全局级别为每个扩展启用/禁用自动更新具有完全控制权。

Visual Studio IDE 中扩展的自动更新

  • 现在可以通过屏幕阅读器更轻松地访问“帐户设置”对话框。

版本控制

基于我们在 Update 1 中的工作成果,我们向状态栏添加了更多功能,以改善版本控制体验。 虽然 Update 1 引入了两个新隔离舱来显示存储库名称和当前分支,但这些仅限于内部实现。 在 Update 2 中,我们添加了三个新的隔离舱,并将它们开放给第三方源代码管理提供程序以用于实现。

其中两个新隔离舱将与原始 Update 1 工作成果一起出现,旨在快速查看挂起的更改和未发布提交的数量。 我们知道,不同的提供程序可能在更改或与服务器同步方面有不同的范例,但我们认为,这些隔离舱提供了足够的灵活性来容纳它们。 如果其中一个隔离舱不适用,提供程序可以选择将该隔离舱从其实现中排除,并且该隔离舱将从状态栏中隐藏。

借助现成已实现的 Git 提供程序,只需单击一下即可在团队资源管理器中导航到“同步”、“更改”、“分支”或“连接”页!

版本控制 - 未发布的提交示例

版本控制 - 无挂起的更改示例

虽然前面提到的隔离舱旨在为已在源代码管理下的解决方案提供更多信息和快速操作,但最后一个隔离舱旨在提供一种简捷的方法来将解决方案引入源代码管理。 使用此新的发布隔离舱,选择源代码管理提供程序并添加解决方案只需单击一下即可实现!

“发布”将直接自动将解决方案包装在 Git 存储库中,并将焦点切换到团队资源管理器中的“同步”页,以便你添加远程库并发布解决方案。 随着越来越多的提供程序支持此功能,“发布”按钮将允许你选择要用于给定解决方案的源代码管理。

版本控制 - 发布此解决方案示例

NuGet

适用于 Visual Studio 的 NuGet 扩展已更新为 v3.4,其中包含以下新功能和改进:

  • 能够从编译的 xproj 项目的包中复制 PDB。
  • 在 contentFiles 元素中支持 iOS 和 Android 生成操作。
  • 支持在 Linux 和 Apple 环境中运行 NuGet。
  • 聚合的“所有存储库源”源,用于从任何可用的已配置包存储库中搜索和安装包。
  • 对包还原和更新操作进行了重要的性能改进。
  • 对“更新”、“合并”和“已安装”视图进行了用户界面性能优化和改进。
  • 并行还原项目包。
  • 支持 gzip 压缩 HTTP 流量,允许 NuGet 客户端读取服务中的 gzip 内容编码。
  • 改进了配置文件的处理,以免进行不必要的编辑和格式化设置。
  • 支持 netstandard 和 netstandardapp 目标框架名字对象。

可以在 NuGet 文档网站上找到一整套深入的发行说明,其中附加了 GitHub 问题。

TypeScript

Visual Studio 2015 Update 2 包括 TypeScript 1.8,其中包括以下新增功能和改进功能。

  • 支持字符串文字类型、F 范围多形性、基于“this”的类型临界以及改进的联合类型推理。
  • 编译器现在突出显示了常见 bug,例如无法访问的代码、缺失的 return 语句和未使用的标签。
  • JSX 支持已更新,以识别和着色 JSX 语法中的最新更改。
  • 改进了 tsconfig.json 支持,以便更好地控制生成配置。
  • 能够使用模块增强来设计更模块化的库。
  • JavaScript 源文件可以作为 TypeScript 编译器的输入包含在内。

有关详细信息,请参阅 MSDN 上的 TypeScript 博客。

开发人员分析工具

Developer Analytics Tools v5.2(以前称为 Application Insights Tools for Visual Studio)相对于 Visual Studio 2015 Update 1 附带的 v4.0 而言包含多项新功能和改进。 值得关注的功能改进如下:

  • 使用 HockeyApp 的通用 Windows 应用的 Beta 发行版。
  • 使用 HockeyApp 的 Windows 窗体应用的 Beta 发行版。
  • 可搜索本地调试会话中发出的 Application Insights 遥测。
  • 改进了 Visual Studio 中已定位的 Application Insights toast。
  • 简化了如何配置 log4net、NLog 和 System.Diagnostics 等记录框架中的跟踪内容。

此外,我们对搜索功能进行了多项改进,如下所示:

  • 可从异常堆栈跟踪跳转到源代码中的方法。
  • 可搜索相关遥测。
  • 支持在代码中查找遥测属性值。
  • 向前/向后查看搜索历史记录。

有关详细信息,请参阅 Microsoft Azure 上的技术发行说明

团队资源管理器

有了 Update 2,在 Visual Studio 中打开团队资源管理器和浏览工作项查询的速度更快。  现在,当浏览查询树时,Visual Studio 会逐步从 TFS 服务器中拉取查询层次结构中的下一级查询文件夹和项目,从而使更深的树级别在被需要时(换句话说,当层次结构树展开时)下载到客户端。

Visual Studio 中的 Git 改进

  • 新的 Git 命令。 在此更新中,我们添加了对 reset(--hard 和 --mixed)、cherry-pick 和 staging 的支持。
  • Git LFS。 Visual Studio 现在与配置为使用 Git LFS(大型文件存储)的 Git 存储库兼容。 详细了解 Git LFS
  • “更改”页现在支持暂存,只需执行简单的操作(例如双击)即可暂存所有已更改的文件,并可查看已更改文件的差异。 

“更改”页的示例

  • “历史记录”视图支持筛选以查找来自特定作者的提交,或使用提交注释中包含的关键字查找提交。 选择某个提交将突出显示分支头和父世系的路径。

  • 现在,使用“分支”页可以更轻松地提取、拉取和推送更改。

Team Foundation 版本控制的封闭签入

TFVC 项目现在可以设置分支策略以要求先成功生成,然后才能将任何代码提交到分支中。

SQL Server Data Tools

Visual Studio 2015 Update 2 包含了 SQL Server Data Tools 的最新更新,支持 Azure SQL 数据库SQL Server 2016 的最新功能。

此更新让使用 Visual Studio 在所有受支持的 SQL Server 版本和数据库平台(本地和云)上开发、测试和部署数据库都变得更加轻松。 该更新还包括了数据库可编程性外围应用增强功能,并改善了 SQL Server Data Tools 中的 SQL 连接体验。现在只需轻松地单击一下,即可自动发现可连接到的 SQL Server 和 Azure SQL 数据库。

此外,Visual Studio 2015 Update 2 解决了新的 Azure SQL 数据库身份验证类型以及 Azure Active Directory 集成身份验证和密码身份验证问题。

针对 Visual Studio 的 Python 工具

Visual Studio 2015 Update 2 包括 Python 工具 2.2.3 的更新。 Python 工具为 Python 编程语言提供编辑、IntelliSense、调试、分析和 Azure 功能。

此版本还改进了对最新 Django 版本的支持,并修复了一些其他问题。

有关完整信息和下载,请参阅 Python 工具 2.2.3 版本页面

杂项

并行测试执行

Update 2 的重点在于修复 bug 并响应用户反馈。 根据此类反馈,我们更新了“并行测试执行”功能。 语义与 Update 1 中(在引入该功能时)的保持相同。 在 Update 2 中,我们已通过以下方式使你可以更轻松地控制该功能:

  • Visual Studio IDE 测试资源管理器提供一个新的切换按钮,你可以使用它来打开/关闭并行执行。 然后,该设置会随解决方案一起保留。
  • 在命令行中,vstest.console.exe 提供一个新的 /Parallel 开关。

XAML Diagnostics

应用内菜单

Visual Studio 2015 现在有一个应用内菜单,用于更轻松地执行 UI 调试。 可以打开和关闭选择模式、切换布局装饰器以及直接跳转到 Visual Studio 中的实时可视化树。 还可以通过单击图标下方的栏来折叠应用内菜单,或者从实时可视化树打开和关闭应用内菜单。

实时属性编辑器中的辅助功能属性

在调试 WPF 或通用 Windows 10 项目时可用的实时属性资源管理器现在会枚举由应用中的自动化对等方公开的属性。 这个新视图可以帮助你诊断许多阻止你的应用可供所有用户访问的常见问题。

其他更改

性能和响应能力

我们进行了以下 Visual Studio 性能改进:

  • 提高了在 Visual Studio 中打开团队资源管理器和浏览工作项查询的速度。
  • 显着减少了 %temp% 目录中日志文件的生成,以节省磁盘空间并防止应用程序故障。
  • 改进了下载和安装 VS Update 与其他功能的可靠性。
  • 缩短了安装扩展后 Visual Studio 的启动时间。
  • 修复了在下载某些包和选择某些功能时安装失败的问题。
  • 在我们的 C++ 浏览数据库引擎中添加了对 SQLite 的支持,从而大大加快了用户代码和所有需要查找的 IntelliSense 操作的原始分析速度。
  • 停止了在 IDE 右上角你的登录名旁边显示“暂停”标记。 现在,你的设置和配置文件在 IDE 中进行身份验证后可以漫游 90 天。 (如果 7 天没有连接到 Visualstudio.com,凭据也不再过期。)
  • 更新了 ASP.NET MVC5 模板。 此修补程序解决了 Microsoft 安全公告 3137909 中所述的漏洞。
  • 启用新的数据库引擎;现在,C++ 项目加载应该更快并且 UI 延迟更少。 
  • 提高了使用 iostream 提取浮点数的速度(换句话说,“流 >> dbl”)。 现在速度提高了 19 倍,并且提取值的所有位现在都是正确的。
  • 提高了 std::vector 重新分配和 std::copy() 的速度;当它们为可简单复制的类型(包括用户定义的类型)调用 memmove() 时,速度提高了 9 倍。
  • 提高了 std::vector 的速度(高达 11 倍)。
  • 提高了 std::string::replace() 的速度,在替换相同大小的子字符串时速度要快得多。
  • 提高了 std::string::push_back() 的速度(高达 3 倍)。
  • 提高了 std::sub_match 比较的速度,因为它们现在避免构造临时 std::string。
  • 提高了 std::function 的复制构造函数的速度;由于代码生成大小减小,速度稍快了一些。
  • 改进了 NuGet 中“更新”、“已安装”和“合并”选项卡的性能;恢复和更新操作;以及支持 gzip 压缩的 NuGet.org 等存储库的查询速度。
  • 改进了会话中的初始完成列表调用,现在由于代码片段枚举已更改为异步操作,响应速度会快得多。
  • 增强了 T4 文本模板,使其现在支持 C# 6.0。
  • 改进了代码图的可靠性(与 Windows 停靠场景相关)。

我们还修复了以下场景中的 Visual Studio 响应能力:

  • 当 Edge 是默认浏览器时,在 Windows 10 上使用帮助查看器。
  • 使用只读驱动器或断开连接的驱动器时运行安装程序。
  • 遇到间歇性网络连接问题时,在 Visual Studio 中工作。
  • 在调试时编辑 C# 或 Visual Basic 文件,如以下 MSDN 文章所述:Microsoft Visual Studio 2015 的更新 (KB3110221)
  • 将编辑器用于缺少 Description 或 Title 元素的自定义代码片段。<><>
  • 在编辑过程中更新托管项目的错误列表条目。
  • 使托管项目保持长时间开放。 (当托管项目长时间保持开放状态时,我们对包含这些托管项目的解决方案停止了 OutOfMemoryException。我们根据迄今为止从客户那里收到的堆转储修复了内存问题。)
  • 打开内存探查器快照。
  • 创建 C++ 应用商店应用程序。
  • 当源代码管理的项目路径过长时使用 Visual Studio。
  • 在安装过程中加载 VC 项目包。
  • 关闭 Visual Studio。
  • 编辑项目属性。
  • 编辑 C++ 代码。
  • 调用方法时调用第三方组件或其他 Visual Studio 代码。
  • 当 IntelliSense 引擎 (vcpkgsrv) 在某些本地化版本中发出特定错误消息时使用该引擎。 现在会显示一条错误消息:“未生成 IntelliSense PCH 文件”。
  • 处理 C++ 项目中引用的托管程序集,其中包含泛型类型层次结构中某个命名替代的特定模式。
  • 打开大型 C++ 项目,这将使 Visual Studio 停止响应长达三秒。
  • 在注释中使用“粘贴”。
  • 调用“创建声明/定义”。

Bug 修复和已知问题

有关该版本中的技术改进、Bug 修复和已知问题的完整说明,请参阅以下 MSDN 文章。

了解详细信息Visual Studio 2015 Update 2 的说明

Azure SDK 2.9

下面是一些有助于改善 Azure 开发体验的最新更新:

  • 修复了与 REST API 客户端生成有关的问题,在此问题中,字符串“未知类型”会作为代码生成文件夹的名称和/或放入所生成代码的命名空间的名称出现。
  • 修复了与计划 WebJobs 有关的问题,在此问题中,身份验证信息无法传递给计划程序预配进程。
  • 添加了对应用服务预配对话框的“服务”选项卡中的辅助应用服务的支持。

有关详细信息,请参阅以下 Azure Tools 博客文章。