我应该参考哪个Microsoft Word(和Excel)Interop程序集或DLL?

我正在使用VB.NET和.NET 3.5框架。

我试图使用他们各自的PIA自动化word和excel来获得intellisense帮助,然后(因为用户没有安装PIA程序集/ dll)删除引用,以便它将作为COM对象调用而不会引发错误。

我发现这篇文章: http : //msdn.microsoft.com/en-us/library/15s06t57.aspx但它并没有真正帮助我什么版本的程序集/ DLL我应该使用。 当我去添加一个引用,我看到这样的东西:

第一个窗格

然后

第二个窗格

然后

第三个窗格

注意所有这些突出显示的声音都很相似,并且有多个版本的程序集。 我开始的链接build议与产品版本相关联的DLL的名称(如WORD版本12 — Microsoft.Office.Interop.Word.dll),但没有说明PIA程序集的版本 。 那么我怎么知道哪一个使用?

还有一个更好的问题:为什么这不是明显的地方? 所有我想要的是微软说:“嘿,你想自动与Word 2007的邮件合并?使用[在这里插入有意义的DLL名称(PIA或”工具“程序集?)]顺便说一句,你可以在这里得到的DLL [ “这里”超链接到我需要的下载]。使用可能安装了2007或2010年的计算机?确保你有两个DLL(如果是这种情况),这里是你如何testing:[插入有用例]。

(例如“对于Word 14(即Word 2010),请使用Microsoft.Office.Interop.Word DLL版本12.0.0.0”(是这种情况吗?我不知道。)) 这应该是显而易见的 ,它不似乎是如此。

也许这显而易见的? DLL的版本是否与程序的版本相同? (即Microsoft.Office.Interop.Word DLL版本12.0.0.0 =?= WORD版本12)

也许我在想这个,但对我来说还是不明显的。 如果你能回答第一个问题,我会很高兴,但如果你能解释这两个问题,那会更好。

使用类浏览器来查看您添加的DLL是否暴露了您想要的function(就像您为添加的其他所有参考一样

为什么这不是明显的地方?

那么,你想要一切可能创造的办公室集成在某处? 这没有道理!

比利基本上回答你的问题

Office 2010 = 14.xxx

Office 2007 = 12.xxx

Office 2003 = 11.xxx

Office xp = 10.xxx

在此之前,没有任何PIA,所以你必须自己做。

有很多方法可以将猫皮肤称为“我怎么知道X是哪个物体”。

  1. 使用对象浏览器并search您想要的方法。
  2. 对它进行编码,然后每次添加一个程序集 – 速度慢,效率低,但是可以工作

至于搞清楚特定的位,微软MSDN,支持等都有资源。 例如,对于邮件合并,我发现这个: http : //support.microsoft.com/kb/301659

如果邮件合并是问题,那么遵循代码的引用是相当容易的。

至于“为什么这是不明显的地方”评论:字obects是相当有据可查的。 也许不是你想要自动化Intellisense的水平,但这是一个附带的情况下,国际海事组织。 自从1.0版本发布之前,我一直在编写.NET Framework,并且还没有为您所做的业务案例。 我也不知道谁有这种types的商业案件。 在80/20规则之后,我并不感到惊讶,这个手册上没有手工操作……甚至完整的文档。

它在文档中,例如DocumentClass :

命名空间:Microsoft.Office.Interop.Word
程序集:Microsoft.Office.Interop.Word(在microsoft.office.interop.word.dll中)

如果它与其他程序集有任何依赖关系,那么它应该自己添加它们,否则它可能会在运行时提示你添加它们。

我不知道有一个明确的指导select哪一个,但我会去的

  • Microsoft.Office.Interop.Word最早的版本,它包含了所有您需要的function,所以您可以尽可能多地与Word版本兼容
  • 更喜欢使用正确的.NET版本构build的程序集 – 我已经看到1.1组件对4.0(虽然不是互操作程序集)的问题,但我认为通常1.1与2.0(= 3.5的运行时版本)应该是确定的。