我们有一个32位的.NET应用程序,它利用32位版本的Office2.1从DSOFile.dll文档中读取常见属性。这适用于32位版本的Windows,适用于Office 2003和Office 2007文档。我们现在正在检查我们的应用程序在64位环境中的行为,特别是在64位Windows Server 2008中。
在这个64位环境中,DSOFile.dll可以成功地从Office2003文档中读取属性(例如,文档),但对于Office 2007文档(例如DOCX),则只为所有属性返回空字符串,否则将生成错误。
以下是我的观察结果:
环境:全新安装
阅读DOC属性: OK
读取DOCX props:返回空值
环境:已安装Office 2007兼容包
阅读DOC属性: OK
读取DOCX props:返回空值
环境: Office 2007兼容包SP1
阅读DOC属性: OK
读取DOCX props:返回空值
环境:已安装Office 2007
阅读DOC属性: OK
阅读DOCX props: Error message = "document is not a OLE file“
在64位系统上,我使用位于%SystemRoot%\Syswow64中的regsvr32副本来注册dsofile.dll。
任何建议都将不胜感激。
发布于 2009-12-18 20:09:38
您可以将您的应用程序编译为x86而不是AnyCPU,然后它将在x64窗口上运行良好。
另一种可能的方法是使用Open XML SDK 2.0 for Microsoft Office。看看它是否支持x64应用程序。
http://www.microsoft.com/downloads/details.aspx?FamilyId=C6E744E5-36E9-45F5-8D8C-331DF206E0D0&displaylang=en
发布于 2010-08-20 10:00:43
你可以找到DSOFIle的源代码(在谷歌上看看),并编译成64位的,或者尝试这个链接,有人说他们已经这样做了:http://www.keysolutions.com/blogs/kenyee.nsf/d6plinks/KKYE-79KRU6
我这里还有一个x64版本,如果你需要的话,我可以上传它。
它可能与您的问题没有直接关系,但如果您想尝试一下,我已经使用了x86和x64
https://stackoverflow.com/questions/1926482
复制相似问题