如何:创建解决方案外接程序

更新:2007 年 11 月

使用“外接程序向导”创建外接程序时,它会自动与集成开发环境 (IDE) 相关联。它可以在 IDE 启动时加载,并会继续运行到卸载该向导或退出 IDE 为止。或者,也可以将外接程序与解决方案相关联,使之成为解决方案外接程序。当因为系统依赖项而希望只使用特定解决方案加载外接程序,或要尽量减少不必要地使用系统资源的情况时,解决方案外接程序会很有用。Visual Studio 加载解决方案时,会首先检查解决方案文件 (.sln) 以查看是否引用外接程序。如果引用,则会加载这些外接程序并调用与常规 Visual Studio 外接程序相同的 IDTExtensibility2 方法。

目前,“外接程序向导”不提供指示外接程序是否为解决方案外接程序的方法。但是,通过一些小的修改可以使外接程序成为解决方案外接程序。典型外接程序将其信息存储在 .Addin XML 文件中(如果是非托管 COM 外接程序,则存储在注册表中),而解决方案外接程序将其信息存储在此解决方案的 .SLN 文件中。

ms165621.alert_note(zh-cn,VS.90).gif说明:

解决方案外接程序必须使用传统的基于 COM 的注册方法注册。由于 Visual Studio 2005 外接程序使用新的 XML(.AddIn 文件)注册,因此必须将其设置为在 Windows 注册表中注册。下面的过程演示如何执行此操作。

ms165621.alert_note(zh-cn,VS.90).gif说明:

显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您现用的设置或版本。这些过程是使用现用的常规开发设置开发的。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 Visual Studio 设置

创建解决方案外接程序

下面的过程描述了如何创建解决方案外接程序。

创建解决方案外接程序

  1. 使用“外接程序向导”创建新的外接程序项目。选择相应的语言,并接受所有其他默认设置。

  2. 右击该项目并选择“属性”。

  3. 单击“生成”选项卡,选中“为 COM Interop 注册”框。

    这样,外接程序就可以作为 COM 对象被引用,该对象是解决方案外接程序所必需的。虽然“外接程序向导”为项目创建了一个 .AddIn XML 文件,但是解决方案外接程序不需要此文件,所以您可以随时删除此文件。

  4. 由于解决方案外接程序为 COM 对象,因此必须在 Windows 注册。若要执行此操作,请启动 Visual Studio 命令提示符并输入 regasm /codebase SolutionAddinName.dll

  5. 由于无法通过注册表将外接程序与解决方案文件相关联,因此必须使用代码执行此操作。若要用解决方案文件注册外接程序,请使用解决方案的 AddIns 集合的 Add 方法。

    AddIns 返回一个 AddIns 集合。它与 AddIns 类似,不同的是它只包含使用特定解决方案文件注册的外接程序,而不是 Visual Studio 中的所有外接程序。因此,若要将外接程序注册为解决方案外接程序,请使用 Solution.AddIns.Add。

    下面是 Visual Basic 和 Visual C# 中的示例。(应该使用这些行替换由外接程序向导提供的 OnConnection 方法中的外接程序变量声明。)

    Dim addin As EnvDTE.AddIn = _
    _applicationObject.Solution2.AddIns.Add("MyAddin1.Connect", "MyAddinName", "My add-in description", True)
    
    EnvDTE.AddIn addin = 
    _applicationObject.Solution.AddIns.Add(MyAddin.Connect, 
    "MyAddinName", "My add-in description", true);
    

请参见

任务

如何:创建外接程序

概念

Visual Studio 外接程序与共享外接程序

控制项目和解决方案

VSProject2 对象介绍