C# 如何为多个Office程序创建外接程序?

C# 如何为多个Office程序创建外接程序?,c#,.net,visual-studio-2010,add-in,office-interop,C#,.net,Visual Studio 2010,Add In,Office Interop,我想为Office开发插件(Outlook、Word和Excel)。代码将几乎相同。区别仅限于检索文档(Outlook的邮件、Word的文档、Excel的图形/图表) 我应该开发3个外接程序,因此我将为我的用户安装3个。或者我可以只开发1个外接程序并在某处添加条件吗?是的,这是可能的。您可能需要3个不同的外接程序类,因为每个平台都有自己的格式和参数,您可能想要偏离一些逻辑,尽管没有阻止您将三个外接程序集成到一个中的事情 另一种选择是创建一个仅使用general Office部件的类库,并将该类库

我想为Office开发插件(Outlook、Word和Excel)。代码将几乎相同。区别仅限于检索文档(Outlook的邮件、Word的文档、Excel的图形/图表)


我应该开发3个外接程序,因此我将为我的用户安装3个。或者我可以只开发1个外接程序并在某处添加条件吗?

是的,这是可能的。您可能需要3个不同的
外接程序
类,因为每个平台都有自己的格式和参数,您可能想要偏离一些逻辑,尽管没有阻止您将三个外接程序集成到一个中的事情

另一种选择是创建一个仅使用general Office部件的类库,并将该类库包含到其他项目中


对于部署:您不能使用开箱即用的ClickOnce,因为ClickOnce每次安装只支持一个Office程序。不过,您可以调整安装,正如MSDN上的这篇文章所述:。

VSTO不支持创建多主机加载项。可能的方法有:

  • 开发一个外接程序,它在不使用VSTO的情况下实现接口
  • 使用支持创建多主机外接程序的第三方工具,如外接程序Express

  • 将多个外接程序类添加到基于VSTO的Existing外接程序不是一种方便的方法。至少,您将无法调试代码

    您可以将自己限制为一个外接程序。我们已经编写了一个跨Word、Excel、Visio、Outlook等的外接程序,到目前为止,我们还没有遇到任何问题。尽管选择权仍在您。@User999999 H你怎么做?你选择了什么类型的项目?只有一个标准的
    类库
    包含模块。@user99999我这样做。我有三个外接程序和一个类库。我的外接程序只用于启动我的代码的功能区上的“创建”按钮。但我总是有三个外接程序。我不明白你怎么只能有一个外接程序!我们使用的是co
    Reflection
    AddinExpress
    的组合(可能有免费版本)我必须为我的全局解决方案选择什么类型的项目?我会从Visual Studio中的任何Office产品模板开始。我相信这并不重要。@mosflex:需要更多帮助吗?是的,我已经有了一个addin Outlook。我应该添加什么以及在哪里添加?一个新类和什么类型?@mosflex:您查看了MSDN上的文档了吗?非常有用ul.有,但部署没有。例如,我使用包含加载项基类和ribbon的类库使其工作。这是一个未记录的功能,可以随时关闭。VSTO不支持正式创建多主机加载项。你在开玩笑吗?你能为我提供一个多个加载项的链接吗-介绍了单个项目中的插件?我测试了Patrick的解决方案,它可以工作,但自动更新不能。我认为插件Express是最好的解决方案,但软件不是免费的。