1

Win 7 Professional 64ビットシステムにVS 2008があり、データベースは同じマシンにインストールされたOracle 11g r2です。

データ ソース構成ウィザード --> 新しい接続データ ソース: Oracle データベース (Oracle クライアント) サービス名、ユーザー名、およびパスワードを入力した後に [テスト接続] をクリックすると、次のエラーが表示されます。

Oracle クライアント ライブラリをロードしようとすると、BadImageFormatException がスローされました。この問題は、32 ビットの Oracle クライアント コンポーネントがインストールされている状態で 64 ビット モードで実行している場合に発生します。

-- この場合は必要がないため、Oracle クライアントをインストールしていません。ラップトップ Win 7 32 ビット Oracle 11g r2 32 ビットで同じ設定を行っており、すべて正常に動作しています。

この問題の解決策があれば教えてください。

4

3 に答える 3

1

あなたの質問からは、あなたがこれについてどれだけ理解しているかわかりません。18 日間、誰も回答を提供しなかったので、0.02 ドルの価値を入れます。64 ビット アプリケーションで実行しているため、64 ビットの .DLL をロードする必要があります。Oracle については何も知りませんが、クライアントの .dll は管理されていない環境で記述されており、管理されたアプリケーションが行う「すべての CPU」の概念をサポートできないと思います。いくつかのオプションがあります。1. 64 ビット ラップトップに 64 ビット バージョンの Oraclee クライアント .DLL が存在する場合はロードします。2. ウィザードのテスト接続機能を使用しないでください。32 ビット マシン用に構築しているアプリをターゲットにすることができます。アプリを実行すると、この問題は発生しません (ターゲット設定の詳細については、このブログ投稿を参照してください)。

于 2011-07-21T19:19:35.693 に答える
0

プロジェクトのビルドプロパティでPlatformTargetを設定するだけで、機能するはずです。

于 2013-03-09T15:05:16.247 に答える
0

VS 2008 は x86 アプリケーションですが、新しい接続データ ソースを設定しようとしている場合、x64 ドライバーを使用しています。

procmon.exe などのツールを使用して証明できます。その場合、テスト接続プロセスを開始した後、いくつかの x64 ドライバーをロードしようとするため、BadImageFormatException が発生することに気付く場合があります。

解決策は、Visual Studio に必要な x86 ドライバーをインストールすることです。

于 2012-12-04T11:04:34.073 に答える