VSPackage 结构(源代码管理 VSPackage)

源代码管理包 SDK 提供了创建 VSPackage 的准则,允许源代码管理实现者将他或她的源代码管理功能与 Visual Studio 环境集成。 VSPackage 是一个 COM 组件,通常由 Visual Studio 集成开发环境(IDE)按需加载,具体取决于包在其注册表项中播发的服务。 每个 VSPackage 都必须实现 IVsPackage。 VSPackage 通常使用 Visual Studio IDE 提供的服务,并提供自己的某些服务。

VSPackage 声明其菜单项,并通过 .vsct 文件建立默认项状态。 在加载 VSPackage 之前,Visual Studio IDE 会显示处于此状态的菜单项。 随后,调用 VSPackage 的方法实现 QueryStatus 以启用或禁用菜单项。

源代码管理包特征

源代码管理 VSPackage 已深入集成到 Visual Studio 中。 VSPackage 语义包括:

  • 要实现的接口是 VSPackage ( IVsPackage 接口)

  • UI 命令实现(.vsct 文件和接口的 IOleCommandTarget 实现)

  • 使用 Visual Studio 注册 VSPackage。

源代码管理 VSPackage 必须与其他 Visual Studio 实体通信:

  • 项目

  • 编辑器

  • 解决方案

  • Windows

  • 正在运行的文档表

可能已使用的 Visual Studio 环境服务

SVsShell

SVsUIShell

SVsSolution

SVsRegisterScciProvider 服务

SVsQueryEditQuerySave

SVsTrackProjectDocuments

SVsSccManager

已实现和调用的 VSIP 接口

源代码管理包是一个 VSPackage,因此它可以直接与向 Visual Studio 注册的其他 VSPackage 进行交互。 为了提供源代码管理功能的完整广度,源代码管理 VSPackage 可以处理项目或 shell 提供的接口。

Visual Studio 中的每个项目都必须实现 IVsProject3 才能在 Visual Studio IDE 中识别为项目。 但是,此接口不够专用于源代码管理。 预计将在源代码管理下的项目实现 IVsSccProject2。 源代码管理 VSPackage 使用此接口来查询项目的内容,并提供其标志符号和绑定信息(在服务器位置和源代码管理下的项目的磁盘位置之间建立连接所需的信息)。

源代码管理 VSPackage 实现 IVsSccManager2,这反过来又允许项目自行注册源代码管理并检索其状态标志符号。

有关源代码管理 VSPackage 必须考虑的接口的完整列表,请参阅 相关服务和接口

另请参阅