x64 システムで x86 dsofile.dll を使用して Office 2007 ドキュメント プロパティを読み取ることができない
-
20-09-2019 - |
質問
32 ビット バージョンの DSOFile.dll 2.1 を利用して、Office ドキュメントから共通プロパティを読み取る 32 ビット .NET アプリケーションがあります。これは、Office 2003 ドキュメントと Office 2007 ドキュメントの両方について、32 ビット バージョンの Windows で機能します。現在、64 ビット環境、特に 64 ビット Windows Server 2008 でのアプリケーションの動作を調査しています。
この 64 ビット環境では、DSOFile.dll は Office 2003 ドキュメント (例:DOC)、ただし、Office 2007 ドキュメントの場合 (例:DOCX)、すべてのプロパティに対して空の文字列のみが返されるか、そうでない場合はエラーが生成されます。
私の観察は次のとおりです。
環境:クリーンインストール
DOC プロパティを読み取ります。わかりました
DOCX プロパティを読み取ります。空の値が返されました
環境:Office 2007 互換機能パックがインストールされている
DOC プロパティを読み取ります。わかりました
DOCX プロパティを読み取ります。空の値が返されました
環境:Office 2007 互換パック SP1
DOC プロパティを読み取ります。わかりました
DOCX プロパティを読み取ります。空の値が返されました
環境:Office2007がインストールされている
DOC プロパティを読み取ります。わかりました
DOCX プロパティを読み取ります。エラー メッセージ = 「ドキュメントは OLE ファイルではありません」
64 ビット システムでは、%SystemRoot%\Syswow64 にある regsvr32 のコピーを使用して dsofile.dll を登録しました。
アドバイスをいただければ幸いです。
解決
アプリケーションを AnyCPU ではなく x86 にコンパイルすると、x64 Windows で正常に動作します。
もう 1 つの可能な方法は、Open XML SDK 2.0 for Microsoft Office を使用することです。x64 アプリケーションをサポートしているかどうかを確認してください。
他のヒント
あなたはのDsofileソースコードを見つける(Googleで見て)と64ビットのためにそれをコンパイル、または誰かが、彼らはすでにそれを行っていると言うこのリンクを試すことができます。 http://www.keysolutions.com/blogs/kenyee.nsf/ d6plinks / KKYE-79KRU6する
私はまた、あなたがそれを必要とする場合、私はそれをアップロードすることができ、ここでx64バージョンを持っています。
これは、直接あなたの問題に関連することはできませんが、あなたはそれを試してみたかったならば、私はx86およびx64を使用しました。