无法读取使用x64系统上的x86 dsofile.dll的Office 2007文档道具
-
20-09-2019 - |
题
我们有一个32位的.NET应用程序,这使得使用的DSOFile.dll 2.1 32位版本读取从Office文档共同的属性。这适用于Windows的32位版本,分别为Office 2003和Office 2007文档。现在我们正在研究我们的应用程序的行为在64位环境,特别是在64位的Windows Server 2008。
在这64位环境中,DSOFile.dll可以成功读取Office 2003页文档(如DOC)的特性,但在办公室的情况下,2007年的文件(例如DOCX),只有空字符串的所有属性返回,否则将产生一个错误。
下面是我的意见:
环境:干净的安装,点击 阅读DOC道具:OK结果 读DOCX道具:空值返回结果
环境:Office 2007兼容包安装的结果 阅读DOC道具:OK结果 读DOCX道具:空值返回结果
环境:Office 2007兼容包SP1结果 阅读DOC道具:OK结果 读DOCX道具:空值返回结果
环境:安装Office 2007点击 阅读DOC道具:OK结果 读DOCX道具:错误消息=“文档不是OLE文件”,点击
在64位系统I中使用位于%SystemRoot%\ SYSWOW64 REGSVR32的拷贝到寄存器dsofile.dll。
任何意见,将不胜感激。
解决方案
您可以编译您的应用程序的x86代替AnyCPU,然后它会正常工作在x64的Windows。
另一种可能的方式是使用Open XML SDK 2.0的Microsoft Office。查看其是否支持x64的应用程序。
其他提示
您可以找到DSOFIle源代码(对谷歌看看),并编译为64位,或尝试此链接,有人说,他们已经做到了: http://www.keysolutions.com/blogs/kenyee.nsf/ d6plinks / KKYE-79KRU6
我也得到了64版本在这里,如果你需要,我可以把它上传。
有可能不直接关系到你的问题,但如果你想尝试一下,我用x86和x64