我們有一個32位的.NET應用程序,它使用32位版本的DSOFile.dll 2.1從Office文檔讀取公共屬性。這適用於32位版本的Windows,適用於Office 2003和Office 2007文檔。我們現在正在檢查我們的應用程序在64位環境中的行爲,特別是在64位Windows Server 2008中。無法讀取在x64系統上使用x86 dsofile.dll的Office 2007 doc道具
在此64位環境中,DSOFile.dll可以成功讀取Office 2003文檔中的屬性(例如。DOC ),但對於Office 2007文檔(例如.DOCX),只會爲所有屬性返回空字符串,否則會生成錯誤。
這裏是我的意見:
環境:乾淨的安裝
讀取DOC道具:OK
讀取DOCX道具:空值返回
環境:安裝Office 2007兼容包
讀取DOC道具:好
閱讀DOCX道具:空值返回
環境:Offi CE 2007兼容包SP1
讀取DOC道具:OK
讀取DOCX道具:空的返回值中
環境:安裝Office 2007
讀取DOC道具:OK
讀取DOCX道具:錯誤消息=「文檔不是OLE文件「
在64位系統上,我使用位於%SystemRoot%\ Syswow64中的regsvr32的副本來註冊dsofile.dll。
任何意見將不勝感激。
作爲簡言之,你並不需要擔心的是哪個版本的regsvr32.exe的至少在使用Windows 7時是如此。如果傳遞32位文件,則64位版本將調用32位版本,反之亦然。 (我不確定Vista是否做了同樣的事情,但Win 7確實如此)非常方便。 –