23

開発チーム メンバーの 1 人にエラーが発生しました

Oracle クライアント ライブラリをロードしようとすると、BadImageFormatException がスローされました

そうみたいです

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

しかし、システムを構成したのは私でした。仕様は次のとおりです。

  • Windows 7 64 ビット
  • Visual Studio 2010 プレミアム
  • ランタイムとしてインストールされた Oracle Client 11g R2 64Bit

何かご意見は?

4

11 に答える 11

19

2 番目の回答を追加して申し訳ありませんが、同じマシンに 64 ビットと 32 ビットのクライアントがインストールされている場合、この問題も発生する可能性があります。

2 つのクライアントがインストールされています

C:\oracle\product\11.2.0\client32Bit
C:\oracle\product\11.2.0\client64Bit

パス環境変数を制御します。どの Oracle クライアントが最初で、他のクライアントの前にロードされます。

 echo %PATH%
 XXXX;C:\oracle\product\11.2.0\client64Bit\BIN;XXX

私の 64 ビット Oracle クライアントは PATH の最初にあるため、VS.NET はそれを Oracle 接続に使用しようとし、Bad Image Exception をスローします。

  set PATH=C:\oracle\product\11.2.0\client32Bit\BIN;%PATH%
  REM Visual Studio 2008
  "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe"
  REM Visual Studio 2010
  "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe"

この後、オラクルに接続できます。もちろん、パスの最初に 32 ビット クライアントを配置することもできますが、他のアプリケーションでは 32 ビットの前に 64 ビット クライアントを配置することを好みます。

于 2011-12-15T13:49:13.310 に答える
9

最近、Visual Studio を 64 ビット O/S で実行しているときに、これを数回見ました。簡単な回避策は、32 ビット クライアントを 64 ビット開発マシンにインストールすることです。

よろしく、ピート

于 2011-05-16T16:16:39.333 に答える
3

IIS7 のアプリケーション プールで、32 ビット対応のサポートFALSEに変更しました。これは私にとってはうまくいきました。簡単だと思いました。乾杯 :)

于 2013-03-08T11:00:39.087 に答える
0

この問題の迅速で簡単な解決策は、以下の手順のみに従う必要があります。

  1. install.batファイルを実行してODACv11.2021Xcopy_x64をインストールし、作成されたパスとして「c:\oracle」を確認します。
  2. oracle32ビットのネットワーク構成フォルダ[tnsnames.oraファイルを含むadminフォルダを含む]を「c:\oracle」にコピーします。
  3. PATH環境変数に「c:\oracle」パスを追加しました。

楽しい

よろしく、工学。ナワフ・H・ビン・タレブ。

于 2013-02-17T17:51:47.950 に答える
0

64 ビットを使用する場合は、私の回答を参照してください:
64 ビット Oracle DataAccess 構成

32 ビットに満足している場合は、32 ビット版の Oracle Data Access Components をインストールしてください。Visual Studio の開発サーバーは 32 ビットなので問題ありません。

于 2013-07-18T11:01:13.573 に答える
0

簡単な解決策:私にとってはうまくいきます。これを試して。

BadImageFormatException 問題の解決策を見つけるのに約 4 時間かかりました。

シナリオ: VS 2012 で、初めてエンティティ モデルを Oracle データベースに追加しようとしました。Oracle データベースのモデルを追加するには、次の 2 つの手順があることを知っていました。

  1. サーバー エクスプローラを使用して Oracle データベースに接続します (接続文字列が作成され、モデルの追加時に使用できます)。
  2. 既存の接続文字列 (ステップ 1 で作成) を使用してモデルを追加します。

しかし、ステップ 1 自体で BadImageFormatException 警告が表示され、解決策が見つかりました。 解像度:

  1. リンクの指示に従って、Oracle クライアントのインストールを完了しますhttp://www.oracle.com/technetwork/topics/dotnet/whatsnew/vs2012welcome-1835382.html
  2. インストールが正常に完了したら、次は簡単な手順です。モデルをプロジェクトに追加します。ここでは、ドロップダウン リストから既存の接続文字列を使用し、userid/pwd を指定します。

次に、モデルを使用する準備ができました:)

于 2015-03-28T22:47:54.577 に答える
0

同じ例外が発生し、MVC バージョン 2.0 よりも高いバージョン (私の場合は MVC 4.0.) にアップグレードしたときに発生したことがわかりました。

MVC 2.0 で新しいプロジェクトを作成すると、問題が解決しました。

于 2013-06-27T11:15:32.307 に答える
0

Visual Studio 経由でアプリケーションを実行している場合は、[ツール] の [プロジェクトとソリューション] の下にある [Web プロジェクト] オプションにアクセスして、[Web サイトとプロジェクトに 64 ビット バージョンの IIS Express を使用する] チェックボックスをオンにします。 >Visual Studio のオプション メニュー。

于 2019-11-05T10:36:57.997 に答える