我们有一个 32 位 .NET 应用程序,它使用 32 位版本的 DSOFile.dll 2.1 从 Office 文档中读取公共属性。这适用于 32 位版本的 Windows,适用于 Office 2003 和 Office 2007 文档。我们现在正在检查我们的应用程序在 64 位环境中的行为,特别是在 64 位 Windows Server 2008 中。
在这个 64 位环境中,DSOFile.dll 可以成功地从 Office 2003 文档(例如 DOC)中读取属性,但是对于 Office 2007 文档(例如 DOCX),所有属性只返回空字符串,否则产生错误。
以下是我的观察:
环境:全新安装
读取 DOC 道具:OK
读取 DOCX 道具:返回空值
环境:已安装 Office 2007 兼容包
读取 DOC 道具:OK
读取 DOCX 道具:返回空值
环境:Office 2007 Compatibility Pack SP1
读取 DOC 道具:OK
读取 DOCX 道具:返回空值
环境:已安装 Office 2007
读取 DOC 道具:OK
读取 DOCX 道具:错误消息 =“文档不是 OLE 文件”
在 64 位系统上,我使用位于 %SystemRoot%\Syswow64 中的 regsvr32 的副本来注册 dsofile.dll。
任何建议将不胜感激。