2

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 小道具
の読み取り: OK DOCX 小道具の読み取り: 空の値が返されました

環境: Office 2007 互換性パックがインストールされて
います DOC
プロパティの読み取り: OK DOCX プロパティの読み取り: 空の値が返されました

環境: Office 2007 Compatibility Pack SP1
DOC
プロパティの読み取り: OK DOCX プロパティの読み取り: 空の値が返される

環境: Office 2007 がインストールされて
います Read DOC props: OK
DOCX props を読みます: エラー メッセージ = "ドキュメントは 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

アプリケーションを AnyCPU の代わりに x86 にコンパイルすると、x64 Windows で正常に動作します。

もう 1 つの方法は、Microsoft Office 用の Open XML SDK 2.0 を使用することです。x64 アプリケーションをサポートしているかどうかを確認します。

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

于 2009-12-18T12:09:37.633 に答える