我最近开发了一个使用Microsoft.Office.Excel.Interop
的小工具,根据我的References文件夹,我添加了对Microsoft Excel 14.0对象库的引用。我还应该提一下,我的机器上有MS Office 2010,所以该工具在那里工作正常。
但是我有一个客户端用户试图在他的机器上安装该工具(显然他安装了MS Office 2003)并收到错误消息。
我想知道,如果我下载Microsoft Excel 12.0对象库并将其Reference添加到我的工具中以便我同时引用MS Excel 14和MS Excel 12,会不会有任何问题? ......这样做会有意义吗?
同样,我对.NET很陌生,我的编程经验纯粹是经验性的,就像没有学校一样。如果这是一个愚蠢的问题,只需要提醒。
编辑:
我找到了似乎可以解决这个问题的东西。我让我的客户端从此链接下载文件:http://www.microsoft.com/en-us/download/details.aspx?id=3508
然后按照底部的说明进行操作,这显然解决了问题。他能够安装该工具并毫无问题地运行它。
答案 0 :(得分:3)
我找到的最佳解决方案是使用虚拟机作为构建机器,其中安装了最早版本的Office Interop库,我需要支持。我在开发机器上尝试使用多个互操作版本时遇到了许多问题。
Microsoft确实提供了为多个办公室版本构建客户端的指导,但我发现对于我的特定用例来说太麻烦了。
http://support.microsoft.com/default.aspx?kbid=244167
您也可以考虑使用替代库(例如开源EP Plus)完全跳过Interop。我还没有亲自试过那个,但看起来很有希望。
答案 1 :(得分:0)
Interops版本之间存在一些差异。如果您将使用在较新版本中添加的某些成员,则旧版本将无法使用。例如,以下是Interop版本14中添加所有内容的列表:
http://msdn.microsoft.com/en-us/library/office/ff194938(v=office.14).aspx
如果您使用其中任何一个,您的应用程序将无法在旧版本中使用,因为这些成员在旧版本中不可用。