外接程序项目的组件

外接程序项目是通过使用**“外接程序向导”**创建并被编译为 DLL 的类库项目。 外接程序项目包含一个名为 Connect 的源代码文件,同时 Connect 还是类的名称。 Connect 类实现一个名为 IDTExtensibility2 的接口,该接口在外接程序和 Visual Studio 集成开发环境 (IDE) 之间传递命令。

IDTExtensibility2 有五个方法,这些方法在实现时用作事件。

方法

说明

OnConnection

外接程序加载到 Visual Studio 中时调用此方法。

OnStartupComplete

Visual Studio 加载完成后调用此方法。

OnAddInsUpdate

从 Visual Studio 加载或卸载外接程序时调用此方法。

OnBeginShutdown

关闭 Visual Studio 时调用此方法。

OnDisconnection

从 Visual Studio 卸载外接程序时调用此方法。

如果在使用**“外接程序向导”**创建外接程序时选中了用户界面选项,则除了自动实现 IDTExtensibility2 接口外,还会自动实现 IDTCommandTarget 接口。 如果选择在外接程序中创建或操纵命令栏,则还必须实现命名空间 Microsoft.VisualStudio.CommandBars。

OnConnection 方法

因为每次加载外接程序时都会调用 OnConnection 方法,所以该方法绝对是在外接程序项目中使用的最重要的方法。 而且,它用于在外接程序中调用其他自动化代码。 会为 OnConnection 方法传递以下四个参数:Application、ConnectMode、AddInInst 和 custom。 Application 表示 Visual Studio IDE。 该方法被强制转换为一个名为 _applicationObject 的 DTE2 对象。 该对象表示核心自动化模型中的主对象,并提供对其所有类型和成员的访问。 ConnectMode(其值包含在 Extensibility.extConnectMode 中)表示外接程序加载的方式(即,通过命令行、通过打开解决方案等方式)。 AddInInst 表示外接程序本身。 custom 参数是数组,在其中可以选择性地将数据传递到外接程序。

除了初始化这些变量之外,如果用**“外接程序向导”创建外接程序时选择了在“工具”**菜单上为此外接程序创建一个命令的选项,则 OnConnection 还包含创建该命令的代码。

其他外接程序方法

其他四个由**“外接程序向导”**就地放置的外接程序方法在默认情况下为空。 若要处理与外接程序相关的事件,可以使用这些其他方法响应这些事件。 例如,关闭外接程序时,可以将代码添加到 OnAddInsUpdate 方法以向另一个过程发送通知消息。 关闭 Visual Studio IDE 时可以调用 OnBeginShutdown 执行清除任务。

创建外接程序并选中“是否为外接程序创建命令栏用户界面?”选项(用于在**“工具”菜单上为外接程序创建命令)时,将实现 IDTCommandTarget 接口。 将两个附加的方法(QueryStatusExec)添加到外接程序项目以处理命令任务。 这些方法包含少量的代码,帮助将此命令放置在“工具”菜单上并响应用户的单击操作。 QueryStatus 向外接程序通知命令的可用性。 用户单击“工具”**菜单上外接程序的命令时,将调用 Exec 方法,因此如果需要响应该事件,则此方法就是应添加代码的地方。

请参见

概念

扩展性项目

其他资源

创建外接程序和向导