如何:创建外接程序
Visual Studio 2013 中已弃用 Visual Studio 的外接程序。 你应该升级外接程序到 VS 的扩展包。 有关升级的更多信息,请参见 。常见问题:将外接程序转换为 VSPackage 扩展
外接程序是在 Visual Studio 集成开发环境 (IDE) 中运行的已编译的 DLL。 编译可以保护知识产权和提高性能。 虽然可以手动创建外接程序,但您可能会发现使用“外接程序向导”更为简便。 此向导创建一个功能全面但却很基本的外接程序,创建完该程序后可立即运行它。 “外接程序向导”生成基本的空程序后,可向其添加代码并对其进行自定义。
“外接程序向导”让您可以为外接程序提供显示名称和说明。 这两项内容都将出现在**“外接程序管理器”中。 还可以选择让向导生成代码,用于向“工具”菜单中添加可打开外接程序的命令。 您也可以选择为外接程序显示一个自定义“关于”**对话框。 向导完成时,将生成只有一个类的新项目(名为 Connect),该项目实现外接程序。
备注
以下说明中的某些 Visual Studio 用户界面元素在计算机上出现的名称或位置可能会不同。您安装的 Visual Studio 版本以及使用的设置决定了这些元素。有关详细信息,请参阅在 Visual Studio 中自定义开发设置。
使用“外接程序向导”创建外接程序
创建一个 Visual Studio 外接程序项目。 在**“文件”菜单上指向“新建”,然后单击“项目”。 定位到“其他项目类型”节点中的“扩展性”。 当您创建项目时,“外接程序向导”**将启动。
在**“选择编程语言”**页上,选择要用于编写外接程序的编程语言。
在**“选择应用程序主机”**页上选择一个或多个应用程序,例如 Visual Studio。
这样,您就能够在你创建之后选择你想在外界程序中运行的应用程序;例如, “宏 IDE”。
在**“输入名称和说明”**页中键入外接程序的名称和说明。
备注
由于句点字符(“.”)在 Visual Studio 命令中具有特殊含义,因此,如果外接程序名称包含句点,Visual Studio 将不会创建默认的“工具”菜单命令。
创建了外接程序后,其名称和说明将显示在**“外接程序管理器”的“可用外接程序”**列表中。 向外接程序的说明中添加足够的详细信息,以便用户能够了解外接程序的功能、工作方式等信息。
在**“选择外接程序选项”**页可以指定:
是否希望外接程序显示在**“工具”**菜单上。
希望启动外接程序的时间。
外接程序是否使用模式用户界面 (UI)。 如果不使用,则可以将外接程序安全地用于命令行生成。
在**“选择‘帮助’中的‘关于’信息”页上,指定是否将有关外接程序的信息显示在 Visual Studio 的“关于”**对话框中。 如果要显示,请添加想要显示的信息。
可以添加到 Visual Studio 的**“关于”**对话框中的信息包括版本号、支持详细信息和授权数据等类似信息。
完成步骤 1 - 6 后,选定的选项会显示在**“摘要”页中以供查看。 如果感到满意,请单击“完成”以创建外接程序。 如果要更改某些内容,请单击“上一步”**按钮。
现在即生成了一个功能全面的基本外接程序。 若要使外接程序能够执行所需的操作,则必须添加相应代码。 有关详细信息,请参阅扩展 Visual Studio 环境。
若要了解“外接程序向导”的后台操作,可以检查它所创建的代码。
安全性
托管外接程序是以用 XML 编写的 .addin 文件的形式注册的。 Visual Studio .NET 2002 和 Visual Studio .NET 2003 中的“外接程序向导”有一个复选框,使您可以为所有用户注册外接程序。 Visual Studio 2005 及更高版本中的“外接程序向导”没有该复选框。 若要在 Visual Studio 2005 及更高版本中为所有用户注册托管外接程序,请将 .addin 文件复制到..\Documents and Settings\All Users\ folder. 若要在 Visual Studio 2005 及更高版本中为所有用户注册非托管外接程序,请在 .reg 文件中将相关注册表项中的 HKEY_CURRENT_USER 更改为 HKEY_CLASSES_ROOT,然后将 .reg 文件应用到注册表。 有关更多信息,请参见自动化安全的最佳做法和外接程序安全性。 Visual Studio 的学习版中不提供“外接程序向导”和自动化程序集。
不必使用外接程序、向导或宏就可以访问自动化功能。 相反,您可以将对所需自动化程序集的引用添加到任何 Visual Studio 项目,然后获取对其类型和成员的访问权。 但是,通过使用外接程序中的自动化功能,您可以在 IDE 中公开所创建的任何外接程序工具。