创建VSTO添加用于多个应用程序

时间:2016-11-10 13:48:58

标签: c# ms-office vsto

是否可以为多功能办公应用程序创建VSTO添加?

我可以将我想要的功能外包给每个应用程序,然后为每个应用程序创建一个加载项吗?如果是,是否有更好的方法来实现这一目标?

4 个答案:

答案 0 :(得分:4)

是的 - 您可以将常用功能放入共享DLL中,就像任何其他应用程序一样。由于每个VSTO项目都针对不同的应用程序结构和潜在的UI范例,因此我建议在单个解决方案中使用不同的VSTO项目,并使用共享程序集来保存公共代码。

答案 1 :(得分:4)

我建议为每个Office应用程序生成solution add-in project

然后将class library项目添加到解决方案中,并从每个附加项目中引用该项目。

这样您就可以集中所有加载项中使用的代码。

如果需要与活动应用程序或文档进行交互,可以检测调用对象的类型并将其类型化为相关的应用程序/文档类型。

答案 2 :(得分:0)

VSTO 不支持创建多主机加载项。您需要为每个主机创建单独的项目,并为共享代码库使用类库。

注意,Add-in Express允许创建多主机COM加载项。因此,可以在多个主机中运行单个加载项项目。它来自 IDTExtensibility2 接口。我不知道为什么VSTO创建者没有向开发者提供这样的功能。

答案 3 :(得分:0)

VSTO本身并没有提供这样的选择。如果要为所有应用程序获取单个项目,可以使用填充程序加载项。这样就可以在同一个dll的所有应用程序中运行加载项。唯一的问题 - 您的代码需要处理什么应用程序开始调用它来运行单独的逻辑或调用特定的Office API函数。