私は.NET 4.0アプリケーションを実行しています。 x64ビットOS + Office 2010(64ビット互換のプロバイダMicrosoft.ACE.OLEDB.12.0 )。BadImageFormatExceptionがローカルマシンに登録されていません。
プラットフォームターゲットのx86:
プロバイダの問題:
'Microsoft.ACE.OLEDB.12.0' プロバイダはローカルマシンに登録されていない
プラットフォームターゲットx64または任意のCPU:
DLLファイルの問題:
System.BadImageFormatException:ファイルまたはアセンブリをロードできませんでした。 'Interop.SHDocVwを、バージョン= 1.1.0.0、カルチャニュートラル、PublicKeyToken = = null' またはその依存関係の1つ。不正な形式のプログラムをロードしようとしました。
この参照されたDLLは32ビットでコンパイルされていますか?その例外は、私が考えるクロスビットの参照に由来します。 –
DLLは32ビットですが、これを修正する方法はありますか? – thedev
残念ながら、64ビットのDLLを入手するか、独自のDLLを32ビットとしてコンパイルする以外に、これを回避する方法はありません。異なるビット数のDLLは同じプロセスに存在することはできません。 –