我正在使用VB.NET和.NET 3.5框架。
我正在尝试使用各自的PIA自动化word和excel以获得intellisense帮助,然后(因为用户没有安装PIA程序集/ DLL)删除引用,以便它可以作为COM对象调用而不用抛出错误。
我找到了这篇文章: http://msdn.microsoft.com/en-us/library/15s06t57.aspx 但它并没有真正帮助我使用什么版本的程序集/ DLL。当我去添加引用时,我会看到类似这样的内容:
然后
然后
请注意所有这些突出显示的声音都相似,并且有多个版本的程序集。我开始的链接建议与产品版本相关联的DLL的名称(如WORD版本12 --- Microsoft.Office.Interop.Word.dll),但没有说明版本的PIA大会。那么我怎么知道使用哪一个?
还有一个更好的问题:为什么这不是 OBVIOUS ?我想要的只是微软说“嘿,你想自动化与Word 2007的邮件合并?使用[在这里插入有意义的DLL名称(PIA或”工具“程序集?)]。顺便说一下,你可以在这里获取该DLL [ “这里”超链接到我需要的下载]。使用可能安装了2007或2010的计算机?确保你有两个DLL(如果是这种情况),以下是你如何测试它:[insert helpful例子。。
(例如“对于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)
也许我过度思考这个问题,但对我来说仍然不是很明显。如果你能回答第一个问题,我会很高兴,但如果你能解释这两个问题,那就更好了。
答案 0 :(得分:4)
比利基本上回答了你的问题
Office 2010 = 14.x.x.x
Office 2007 = 12.x.x.x
Office 2003 = 11.x.x.x
Office xp = 10.x.x.x
在此之前,没有任何PIA,所以你必须自己制作。
答案 1 :(得分:1)
使用类浏览器查看您添加的DLL是否公开了您想要的功能(就像您为添加的所有其他参考所做的那样。
为什么这不适合某个地方?
那么,您希望在办公室集成中可能创建的所有内容都记录在某处吗?这没有意义!
答案 2 :(得分:1)
有许多方法可以让猫皮肤被称为“我怎么知道X对象是什么”。
至于找出特定位,Microsoft MSDN,支持等都有资源。例如,对于邮件合并,我发现了这个: http://support.microsoft.com/kb/301659
如果邮件合并成问题,可以很容易地遵循代码的引用。
至于“为什么这在某处并不明显”评论:Word对象的记录相当充分。也许不是你想要自动化Intellisense的水平,但这是一个边缘情况,IMO。自1.0版本发布之前,我就一直在编写.NET Framework,并且还没有针对您正在做的业务案例。我也不知道有这种商业案例的人。遵循80/20规则,我并不感到惊讶,因为没有关于这个规则的手持操作......甚至是完整的文档。
答案 3 :(得分:1)
它在文档中,例如DocumentClass:
命名空间:Microsoft.Office.Interop.Word
程序集:Microsoft.Office.Interop.Word(在microsoft.office.interop.word.dll中)
如果它对其他程序集有任何依赖关系,那么它应该自己添加它们,或者它可能会在运行时提示你添加它们。
我不确定是否有选择哪一个的明确指南,但我会选择
Microsoft.Office.Interop.Word
,其中包含您需要的所有功能,因此您可以与尽可能多的Word版本兼容