为多个应用程序创建 VSTO 插件
Creating a VSTO Add in for multible applications
是否可以为多个办公应用程序创建 VSTO 插件?
我可以外包每个应用程序需要的功能,然后为每个应用程序创建一个插件吗?如果是,是否有更好的方法来实现这一点?
是的 - 您可以将常用函数放入共享 DLL 中,就像任何其他应用程序一样。由于每个 VSTO 项目都针对不同的应用程序结构和潜在的 UI 范例,因此我建议在单个解决方案中使用不同的 VSTO 项目,并使用一个包含通用代码的共享程序集。
我建议为每个 Office 应用程序制作 solution
和 add-in project
。
然后向解决方案添加一个 class library
项目,并从每个附加项目中引用该项目。
这样您就可以集中所有加载项中使用的代码。
如果您需要与活动的应用程序或文档进行交互,您可以检测调用对象的类型并将其类型转换为相关的 application/document 类型。
VSTO 不支持创建多主机加载项。您需要为每个主机创建单独的项目,并使用 class 库作为共享代码库。
注意,Add-in Express 允许创建多主机 COM 加载项。因此,单个加载项项目可以 运行 在多个主机中。它来自 IDTExtensibility2 接口。我不知道为什么 VSTO 的创建者没有向开发人员提供这样的功能。
VSTO 本身不提供这样的选项。如果您想为所有应用程序获取单个项目,您可以使用 shim 加载项。这使得在同一个 dll 的所有应用程序中添加 运行 成为可能。唯一的问题 -- 您的代码需要处理什么应用程序开始调用它以 运行 单独的逻辑或调用特定的办公室 API 功能。
是否可以为多个办公应用程序创建 VSTO 插件?
我可以外包每个应用程序需要的功能,然后为每个应用程序创建一个插件吗?如果是,是否有更好的方法来实现这一点?
是的 - 您可以将常用函数放入共享 DLL 中,就像任何其他应用程序一样。由于每个 VSTO 项目都针对不同的应用程序结构和潜在的 UI 范例,因此我建议在单个解决方案中使用不同的 VSTO 项目,并使用一个包含通用代码的共享程序集。
我建议为每个 Office 应用程序制作 solution
和 add-in project
。
然后向解决方案添加一个 class library
项目,并从每个附加项目中引用该项目。
这样您就可以集中所有加载项中使用的代码。
如果您需要与活动的应用程序或文档进行交互,您可以检测调用对象的类型并将其类型转换为相关的 application/document 类型。
VSTO 不支持创建多主机加载项。您需要为每个主机创建单独的项目,并使用 class 库作为共享代码库。
注意,Add-in Express 允许创建多主机 COM 加载项。因此,单个加载项项目可以 运行 在多个主机中。它来自 IDTExtensibility2 接口。我不知道为什么 VSTO 的创建者没有向开发人员提供这样的功能。
VSTO 本身不提供这样的选项。如果您想为所有应用程序获取单个项目,您可以使用 shim 加载项。这使得在同一个 dll 的所有应用程序中添加 运行 成为可能。唯一的问题 -- 您的代码需要处理什么应用程序开始调用它以 运行 单独的逻辑或调用特定的办公室 API 功能。