使用和不使用VSTO开发Office 2007/2010加载项的相对优点是什么?

时间:2011-08-17 22:49:15

标签: visual-studio-2010 vsto ms-office add-in

几年前,我为Office 2003(Word,Excel和PowerPoint)做了一些非常严肃的Office加载项开发。我使用Visual Studio 2003在C#中创建了一些共享的COM加载项。当时,我查看了VSTO,但我认为原因是我无法完全记住它不适合我的需求。

我的加载项现在应该升级,不再需要支持Office 2003 - 尽管它们仍然需要支持Office 2007,而不仅仅是2010。

我知道事情已经发生了很大变化,Visual Studio 2010对Office开发有了更好的支持。我想确定是否应该使用VSTO重新实现我的加载项,或者继续使用共享的COM加载项路由。

如果有人知道每种方法的优缺点(超出营销宣传),我很乐意听到它。

我第一次发现非常令人沮丧的事情(不使用VSTO,但无论如何都可能适用):

  
      
  • 需要明确管理COM引用(并调用   ReleaseComObject无处不在)
  •   
  • 需要使用COM填充程序来使安全模型正常工作
  •   
  • 视觉工作室安装项目只是平淡无效;我结束了   建立我自己的基于MSI的安装程序
  •   
  • 缺乏文件,特别是上述所有文件;我消费   几周的反复试验和搜索随机博客; MS提供的   示例代码完全忽略了所有这些现实问题
  •   

还值得一提的是,在插件出现之前尽量减少需要安装的内容非常重要。我认为让我退出VSTO的一件事就是需要部署其他东西(尽管我从未走过那条路线,我不知道这个问题是否合理)。而且我真的希望能够在标准的Windows 7(或Vista)版本上进行部署而无需首先安装(例如).NET 4。

1 个答案:

答案 0 :(得分:1)

部分答案但是太长而无法发表评论:

我可以评论的部分:

  • VSTO插件的安装项目现在确实有效,并且有关于如何正确创建它们的非常好的演练。
  • 办公室对象模型的一般文档很差,对于com和c#开发应该同样烦人。因为如果你使用.net framework v4,很多对象现在都会作为动态返回,你会失去智能感知,这对你没有帮助。解决方法是在可能的情况下明确地转换为已知类型。
  • 为了运行它显然需要安装相关框架(由于动态,在办公室组和NoPIA设置的压力下添加的可选参数,v4比早期版本的FAR更好)除此之外它还需要已安装VSTO运行时。
  • 所有这些依赖项都可以合并到安装程序中,但它们是必需的

您还没有指定用于创建这些com插件的内容(我的猜测是c ++或vb6),我无法分辨它们有多大以及它们需要多少大修所以现在提供建议是不可能的是时候做出改变了。移动到c#的区域之一肯定会更清洁,更好的是与丝带相关的任何东西。但我再也无法估计这对你有多重要。