2

我们有一个 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。

任何建议将不胜感激。

4

2 回答 2

2

您可以找到 DSOFIle 源代码(在 google 上查看)并将其编译为 64 位,或尝试有人说他们已经完成的链接:http: //www.keysolutions.com/blogs/kenyee.nsf/d6plinks /KKYE-79KRU6

我这里也有 x64 版本,如果你需要,我可以上传。

它可能与您的问题没有直接关系,但如果您想尝试一下,我使用过 x86 和 x64

于 2010-08-20T02:00:42.743 回答
0

您可以将您的应用程序编译为 x86 而不是 AnyCPU,然后它将在 x64 Windows 上正常工作。

另一种可能的方法是使用 Open XML SDK 2.0 for Microsoft Office。看看它是否支持 x64 应用程序。

http://www.microsoft.com/downloads/details.aspx?FamilyId=C6E744E5-36E9-45F5-8D8C-331DF206E0D0&displaylang=en

于 2009-12-18T12:09:37.633 回答