Visual Studio 15 插件新特性

  • Jeff Martin
  • 孙镜涛

2016 年 11 月 22 日

话题:.NET语言 & 开发

之前已经报道过,在 Visual Studio 15 中 Microsoft 优先要处理的问题就是缩减启动时间和编辑器安装包的大小,而这势必会改变插件的使用方式。正如 Microsoft 公司的 Tim Sneath 所说,为了支持这些新功能插件开发者需要做出一些改变

Microsoft 在 Visual Studio 插件方面始终面临着一个困境:为了让插件既有用又功能强大,Microsoft 将很多本来只能自己使用的 Visual Studio API 开放了出来。这样做的负面影响就是难以禁用具有不良行为、影响编辑器性能的插件。而在 Visual Studio 15 中,当插件对编辑器的性能有负面影响的时候,用户会收到相应的反馈。

在主编辑器启动时,如果有插件要加载,那么 Visual Studio 会测量加载时间。一旦该加载时间超过了内部定义的阈值,Visual Studio 就会通知用户,如果之后插件依然需要很长的加载时间,那么 Visual Studio 就会为用户展现禁用该插件的选项。在使用编辑器的时候,对输入响应有消极影响的插件也会触发单独的通知,让用户可以选择禁用该插件。

因为 Microsoft 的目标是让 Visual Studio 尽可能快地运行,所以 Visual Studio 15 的一项非常重要的改进就是用户可以非常容易地根据需要安装组件(Web、移动手机等),而首次未安装的组件将来也可以在需要的时候继续安装。改进后的安装方式可能会对现有插件造成一定的影响,因为它们可能依赖于现有的一些特定功能。此外,Microsoft 还修改了插件所使用的 VSIX manifest 文件,以便让 Visual Studio 能够识别出插件运行所必需但是缺失的组件并自动安装,该修改有望在 Visual Studio 15 的下一个预览版中发布。

插件开发者也将受益于这些新特性:插件可以在安装的时候编译成本地镜像以提升性能;可以将文件安装到插件文件夹之外的位置,也就是说 MSBuild 这样的组件以后可以由插件安装。

Visual Studio 15 为插件带来了很多新特性,但是也带来了一些问题:利用新特性编写的插件会向后兼容么?来自于 Microsoft 的 Justin Clareburt 透露,通常兼容性将会维护到 Visual Studio 2012, 但是他没有介绍现在使用 Visual Studio 15 新特性编写的插件在将来的版本中会如何处理。可以想象,虽然插件可以非常容易地绕过本地镜像支持,但是如果一个 Visual Studio 插件试图在 2013 上将文件安装到插件文件夹之外时会发生什么呢?InfoQ 将会持续关注并对此进行报道。

查看英文原文Extending Visual Studio "15"

.NET语言 & 开发