相关服务和界面(源代码管理 VSPackage)
本部分列出了 Visual Studio SDK 中与源代码管理 VSPackage 相关的所有接口。 源代码管理 VSPackage 实现其中一些接口,并使用其他接口来完成源代码管理任务。
由源代码管理 VSPackage 实现的接口
Visual Studio SDK 中介绍了以下接口,源代码管理 VSPackage 根据所需的功能集实现其中的一部分。 某些接口标记为必需,必须由每个源代码管理 VSPackage 实现。
对于包未实现的接口,Visual Studio 提供默认实现。 请注意,未注册 VSPackage 且未控制项目时,默认实现适用于此情况。 正确编写的源代码管理 VSPackage 实现所有必要的接口,而不是将其留给这些接口的默认实现。
源代码管理 VSPackage 必须实现封装以下部分或全部接口的专用服务。
接口包括:
必需:相应的实体(源代码管理 VSPackage、源代码管理存根、项目)必须实现接口。
建议:实体应实现此接口;否则,源代码管理功能可能会受到限制。
可选:实体可以实现此接口以提供更丰富的功能集。
接口 | 目的 | 实现者 | 实现? |
---|---|---|---|
IVsQueryEditQuerySave2 | 编辑器在修改或保存文件之前调用此接口。 如果检查输出失败,源代码管理 VSPackage 可以检查文件或拒绝操作。 | 源代码管理 VSPackage | 建议 |
IVsSccManager2 | 此接口为项目提供基本的源代码管理功能,例如向源代码管理注册和注销项目,并为基本源代码管理标志符号提供支持。 | 源代码管理 VSPackage | 必须 |
IVsSccProject2 | 此接口是从 IVsHierarchy 使用 QueryInterface 函数获取的,或者只是将实现 IVsHierarchy 的对象强制转换为 IVsSccProject2 。 它用于获取项目中源代码管理下的文件,或通知项目当前源代码管理状态或位置。 |
项目 | 必须 |
IVsSccProvider | 集成模块使用此接口来设置当前的活动 VSPackage。 | 源代码管理 VSPackage | 必须 |
IVsTrackProjectDocuments2 | 此接口基于订阅模型。 任何 VSPackage 都可以指示它想要接收文档事件,并由 shell 就即将发生的事件进行建议。 它由 Visual Studio 实现和处理,后者反过来会将实现 IVsTrackProjectDocumentsEvents2 VSPackage 的事件传递给 VSPackage。 |
源代码管理存根 | 必须 |
IVsTrackProjectDocuments3 | 此接口提供批处理、同步的读/写操作和高级 OnQueryAddFiles 方法。 |
源代码管理存根 | 必须 |
IVsTrackProjectDocumentsEvents2 | 当将新文件添加到项目或从项目中重命名或删除文件和文件夹时,解决方案资源管理器和项目将调用此接口。 源代码管理 VSPackage 可以检查项目文件或取消操作。 | 源代码管理 VSPackage | 建议 |
IVsTrackProjectDocumentsEvents3 | 解决方案资源管理器和项目调用此接口,以响应对 IVstrackProjectDocuments3 接口方法的调用。 源代码管理 VSPackage 可以跟踪批处理操作、同步的读/写操作,以及使用更高级 OnQueryAddFiles 的方法。 |
源代码管理 VSPackage | 建议 |
IVsSccEnlistmentPathTranslation | 此接口为 Web 项目提供登记管理支持。 | 源代码管理 VSPackage | 建议 |
IVsSccManagerTooltip | 此接口用于检索项目中源代码控制文件的工具使用技巧。 | 源代码管理 VSPackage | 可选 |
IVsSccOpenFromSourceControl | 此接口提供命名空间扩展支持。 | 源代码管理 VSPackage | 可选 |
IVsSccControlNewSolution | VSPackage 使用此接口将命名空间扩展集成到 “新建”、“ 打开”或 “保存 ”对话框中。 因此,可以在创建时自动将项目添加到源代码管理,也可以在保存操作生效时添加到源代码管理。 | 源代码管理 VSPackage | 可选 |
IVsSccGlyphs | VSPackage 使用此接口将其他标志符号定义为解决方案资源管理器中节点的源代码管理标志符号。 | 源代码管理 VSPackage | 可选 |
IVsSccAddWebProjectFromSourceControl | Web 项目的“添加”对话框使用此接口。 它提供用于浏览源代码管理位置的方法,以及打开以前在该位置的源代码管理存储库中添加的 Web 项目的方法。 | 源代码管理 VSPackage | 建议 |
IVsAsynchOpenFromScc | 此接口支持从源代码管理加载项目的异步(后台)。 | 源代码管理 VSPackage | 可选 |
IVsAsynchOpenFromSccProjectEvents | 此接口允许项目监视由 . IVsAsynchOpenFromScc. 启动的异步加载进度。 | Project | 可选 |
IVsSccToolsOptions | 此接口允许 IDE 查询活动源代码管理 VSPackage。 IDE 会查询源代码管理设置的值,即使没有注册活动的源代码管理 VSPackage,也具有意义。 此接口由 Visual Studio 实现和处理。 | 源代码管理存根 | 必须 |
IVsRegisterScciProvider | 此接口用于注册源代码管理 VSPackage。 | 源代码管理存根 | 必须 |
SourceControl | 此接口用于自动化。 因此,它只公开了无需显示任何 UI 即可执行的函数。 | 源代码管理 VSPackage | 可选 |
IVsPersistSolutionProps | 此接口用于在解决方案 (.sln) 文件中保存源代码管理设置。 这些设置包括源代码管理位置和源代码管理状态标志。 | 源代码管理 VSPackage | 建议 |
IVsPersistSolutionOpts | 此接口用于将源代码管理设置保存在解决方案选项 (.suo) 文件中。 这可能包括特定于用户的源代码管理设置,例如当前用户的登记位置。 | 源代码管理 VSPackage | 建议 |
IVsSolutionEvents3 | 此接口用于监视事件,以便在关闭解决方案之前在项目文件中执行检查等操作,或者在打开项目时从源代码管理获取新文件。 | 源代码管理 VSPackage | 建议 |