開発チームメンバーの1人にエラーが発生しました
OracleクライアントライブラリをロードしようとするとBadImageFormatExceptionがスローされました
そうみたいです
この問題は、32ビットOracleクライアントコンポーネントがインストールされた64ビットモードで実行している場合に発生します。
しかし、システムを構成したのは私でした-仕様は次のとおりです。
何かご意見は?
64ビットOSでVisual Studioを実行しているときに、最近これを数回見ました。簡単な回避策は、64ビット開発マシンに32ビットクライアントをインストールすることです。
よろしく、ピート
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 Connectionsに使用しようとし、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"
この後、Oracleに接続できます。もちろん、32ビットクライアントを最初にパスに配置できますが、他のアプリケーションでは32ビットの前に64ビットクライアントを配置することを好みます。
Windows 7にアップグレードした後、同じエラーが発生しました。VisualStudioの[プロパティ]ページの[ビルド]タブで、プラットフォームターゲットをx86に変更することで解決しました。
Visual Studio 2013および64ビットOracleクライアント(11および12バージョン)でも直面する可能性のある同じ問題。私の解決策は次のとおりです。
a)デスクトッププロジェクト。 [プロジェクトのプロパティ]> [ビルド]> [32ビットを優先]チェックボックスを無効にします。
b)ASP.NETプロジェクトまたはWebサイトメインメニュー>ツール>オプション>プロジェクトとソリューション> Webプロジェクト>有効「IIS WebサイトおよびプロジェクトにはExpressの64ビットバージョンを使用する」チェックボックス。
IIS7のアプリケーションプールで2ビット対応サポートを[〜#〜] false [〜#〜]に変更しました。これは私のために働いた。簡単だとわかりました。乾杯:)
64ビットを使用する場合は、ここで私の答えを参照してください。
64ビットOracle DataAccess構成
32ビットに満足している場合は、Oracle Data Access Componentsの32ビット版をインストールするだけです。 Visual Studioの開発サーバーは32ビットなので、問題はありません。
この問題の迅速で簡単な解決策は、以下の手順のみに従う必要があります。
楽しい
よろしく、工学。ナワフ・H・ビン・タレブ。
同じ例外が発生し、2.0よりも高いバージョンのMVC、私の場合はMVC 4.0にアップグレードしたときに発生することがわかりました。
MVC 2.0で新しいプロジェクトを作成すると、問題は解決しました。
簡単な解決策:私のために働く。これを試して。
BadImageFormatException問題の解決策を見つけるのに4時間近く費やしました。
シナリオ:VS 2012、私は初めてOracleデータベースにエンティティモデルを追加しようとしていました。 Oracleデータベースのモデルを追加するには、2つのステップがあることを知っていました。
しかし、ステップ1自体でBadImageFormatExceptionの警告が表示され、解決策が見つかりました。 解像度:
その後、モデルを使用する準備が整いました:)