C#双重Outlook 2007/2010 VSTO插件

6
我们需要用C#创建一个VSTO插件,同时支持Outlook 2007和2010。
我们先创建了3个项目:
1. 文件->新建项目->Office->2007->Outlook 2007插件 2. 文件->新建项目->Office->2010->Outlook 2010插件 3. 文件->新建项目->Windows->类库
所有共享代码都在第三个项目中。
到目前为止,我们部分地开发了该插件,并使用ClickOnce进行测试部署。
有一天,我们注意到有人在2007 Outlook上安装了2010插件,但并没有任何负面影响。
于是有几个问题:
1. 创建2007 VSTO项目有什么理由吗? 我们只能创建2010项目吗? 2. 或者唯一的区别是ClickOnce安装程序引导的Office运行时版本?可以在Outlook 2007中安装2010运行时吗? 3. 如果没有区别,为什么会有两个Visual Studio项目模板?
在我们最终的解决方案中,我们将使用WiX安装程序,目前也可以工作。 如果我们可以使用1个项目来完成插件,那么WiX安装程序将大大简化。
1个回答

6

是否有必要创建2007 VSTO项目?我们能否只创建2010项目?
您可以直接使用2010项目,但是如果意外引用了任何仅限于2010的api,例如访问任何新的对话API将导致您的插件在2007中崩溃。

或者唯一的区别是ClickOnce安装程序引导的Office运行时版本吗?您可以为Outlook 2007安装2010运行时吗?
基本上,您正在编写一个VSTO 3.0插件,它适用于2007和2010。 VSTO实际上并不关心您正在编写哪个模板,只要您的插件是VSTO 3.0插件即可。

如果没有区别,为什么会有两个Visual Studio项目模板?
我看到的有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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接