扩展分析器V3

Visual Studio博客

扩展分析器是Visual Studio 2010的扩展,允许浏览Visual Studio内部的多个扩展性实体。它还允许通过报告VisualStudio中日志服务的信息来诊断加载扩展时的几个常见错误。

VisualStudio中的扩展性团队最近为扩展分析器工具添加了几个令人兴奋的功能。除了浏览Visual Studio包和MEF扩展之外,现在还可以浏览机器上安装的VSIX扩展和PkgDef文件的集合。该工具扫描VSIX扩展名和PkgDef文件的内容,并在VS包、VSIX扩充名、PkgDef文件和MEF组件之间建立关系。这些关系允许在不同实体之间导航。

该工具的最新版本可以从Visual Studio库。本文详细介绍了Extension Analyzer中添加的新功能。

扩展浏览器VSIX选项卡

新的VSIX选项卡显示有关已安装的VSIX扩展的信息。每个VSIX扩展都有一个唯一的VSIX标识符以及有关该扩展的其他信息。在网格中选择行后,“属性”窗口将更新有关所选VSIX的信息。VSIX选项卡有一个复选框,用于切换是否显示系统组件。这样可以减少用户看到的数据量,而这些数据通常不需要浏览系统组件。系统组件是其清单设置了SystemComponent属性的VSIX。

还可以在VSIX选项卡之间来回导航以查看VSIX单元的定义,以及在Log Viewer中查看与特定VSIX相关的日志事件。要在日志查看器中收集事件,请记住使用/Log开关启动Visual Studio。

在VSIX行上选择上下文菜单包括以下操作:

  • 导航到所选VSIX的日志条目。
  • 在Visual Studio编辑器中以XML形式打开VSIX清单。
  • 打开VSIX文件夹。

扩展浏览器屏幕截图1

 

扩展浏览器PkgDef文件选项卡

“PkgDef文件”选项卡显示有关Visual Studio可用的PkgDef文件的信息。每行显示PkgDef文件的短名称、路径以及该文件是否为系统组件。此选项卡还与VisualStudio中的“属性”窗口完全集成。

系统组件属性的值是从包含PkgDef(如果有)的VSIX继承的。如果PkgDef不是来自VSIX,则系统组件的值是未定义的(空白),因为没有确切的方法来确定PkgDef是否为系统组件。PkgDef文件选项卡包含一个复选框,用于切换是否显示系统组件。这也是为了减少用户看到的相关数据量。

如果PkgDef文件是通过VSIX扩展部署的,则属性VSIX Identifier的值包含相应VSIX的标识符。此值可用于导航到VSIX选项卡中相应的VSIX扩展,并观察该VSIX的其他几个属性。

有几个PkgDef文件(特别是系统组件文件)不是通过VSIX部署的,它们的VSIX Identifier属性将为空。现在可以通过在选项卡的filter控件中输入类似这样的筛选器来筛选出包含空值的列:-VSIXIdentifier=“”

请注意,“-”前缀过滤器外面的具有空值的行。不带“-”或带“+”前缀的行将包括具有空值。

与VSIX类似,也可以在PkgDef文件选项卡之间来回导航,以查看PkgDef文件的定义,并在日志查看器中查看与特定PkgDef-文件相关的日志事件。

在PkgDef文件行上选择上下文菜单包括以下操作:

  • 导航到所选PkgDef的日志条目。
  • 导航到安装了所选PkgDef的VSIX(如果可用)。
  • 在Visual Studio编辑器中以XML格式打开PkgDef文件。
  • 打开PkgDef文件文件夹。

VS包文件文件夹

 

VS包更新选项卡

扩展浏览器的VS Packages选项卡已经更新了一些功能。现在有一个新的PkgDef文件标识符列,它将VS包链接到注册包的PkgDef(如果有)。VS包和PkgDef文件之间的关联是使用托管包的Codebase或Assembly属性或本机包的Path属性完成的。

Visual Studio内部的几个VS包在安装过程中直接注册,并且没有与之关联的PkgDef文件。然而,外部用户使用VisualStudio2010创建的大多数VS包都将具有与之关联的PkgDef文件和VSIX可部署单元。

还有一个新的VSIX Identifier列,它将VS包链接到部署该包的VSIX。这些关联是使用注册VS包的PkgDef文件计算的。基本上,如果VSIX包含注册包的PkgDef文件,则VSIX与VS包相关联。

现在计算Is System Component列的依据是知道VS包是Visual Studio内部的,还是VS包的VSIX标记为System Components。

在VS Package行上选择上下文菜单包括以下操作:

  • 导航到安装了所选VS包的VSIX(如果可用)。
  • 导航到注册所选VS包的PkgDef文件(如果可用)。
  • 打开VS Package文件文件夹。

延伸分析仪

MEF组件更新选项卡

扩展浏览器的MEF组件选项卡也更新了一些功能。首先,每个MEF实体都有一个新的VSIX Identifier属性,它允许将MEF实体与部署该实体的VSIXExtension(如果有)关联起来。现在可以从给定的MEF实体导航到VSIX选项卡。

添加的另一个功能是为每个MEF实体包含一个“系统组件”列。此属性的值继承自部署实体的VSIX,并允许使用“显示系统组件”复选框筛选系统组件。这再次大大减少了外部用户看到的数据量,只显示与VisualStudio更相关而非内部的组件。

向MEF实体添加了以下上下文菜单:

  • 导航到安装了所选MEF实体的VSIX(如果可用)。
  • 打开MEF实体文件夹。

extension analayzer

我们希望您发现此工具中的新功能很有用。

Mynor Ivan Muralles,Visual Studio团队软件设计工程师

0条评论

讨论结束。

反馈usabilla图标