C# 双 Outlook 2007/2010 VSTO 外接程序

本文关键字:VSTO 程序 2010 Outlook 2007 | 更新日期: 2023-09-27 17:56:38

我们需要在 C# 中创建同时支持 Outlook 2007 和 2010 的 VSTO 外接程序。

首先,我们创建了 3 个项目:

  1. 文件->新建项目->Office->2007->Outlook 2007 加载项
  2. 文件>新建项目>Office->2010->Outlook 2010 外接程序
  3. 文件>新建项目>Windows>类库

所有共享代码都在项目 #3 中。

到目前为止,我们已经部分开发了外接程序,并一直在使用 ClickOnce 部署进行测试。

有一天,我们注意到有人安装了 2007 Outlook 的 2010 加载项,并且没有任何不良影响。

所以有几个问题:

  • 有什么理由创建2007 VSTO项目? 我们能不能创建 2010 项目?
  • 还是唯一的区别是版本的版本办公运行时由 ClickOnce 引导安装? 您可以只安装 Outlook 2010 的运行时吗?
  • 如果没有区别,为什么有两个视觉工作室项目模板?

在我们的最终解决方案中,我们将使用 WiX 安装程序,到目前为止它也在工作。 如果我们可以为加载项使用 1 个项目,WiX 安装程序将大大简化。

C# 双 Outlook 2007/2010 VSTO 外接程序

Is there any reason to create the 2007 VSTO project? Can we just create the 2010 project?
您可以只使用 2010 项目,但是如果您不小心引用了任何 2010 ONLY API,例如访问任何新的对话 API 将导致您的加载项在 2007 年崩溃。


Or is the only difference the version of the office runtime that is bootstrapped by the ClickOnce installer? Can you just install the 2010 runtime for Outlook 2007?基本上,您正在编写一个适用于 2007 和 2010 的 VSTO 3.0 加载项。VSTO 实际上并不关心你为哪个模板编写,只关心你的外接程序是 VSTO 3.0 外接程序。


If there is no difference, why are there two Visual Studio project templates?我可以看到的 2 个原因,F5 调试支持,以及确保您不访问新的 API'

如果您确实沿着唯一的 2010 年加载项道路前进,我建议您针对 Microsoft.Office.Interop.Outlook v12 PIA 编译解决方案,这将向您显示您正在访问的任何新 API。如果您确实希望仅在外接程序托管在 2010 年时才以这些新 API 为目标,请查看 http://blogs.msdn.com/b/vsto/archive/2010/06/04/creating-an-add-in-for-office-2007-and-office-2010-that-quot-lights-up-quot-on-office-2010-mclean-schofield.aspx