[解決済み] ファイルまたはアセンブリ「Oracle.DataAccess」またはその依存関係の 1 つをロードできませんでした。
質問
このウェブアプリケーションを実行しようとしています。次のようなエラーが発生します。 ファイルまたはアセンブリ "Oracle.DataAccess"、またはその依存関係の 1 つを読み込めませんでした。不正なフォーマットでプログラムをロードしようとしました。 例外の詳細です。System.BadImageFormatException. "ファイルまたはアセンブリ "Oracle.DataAccess"、またはその依存関係の 1 つをロードできませんでした。不正なフォーマットでプログラムをロードしようとしました。 以下は、すでに試したことです。
- すべてのOracle DLを32ビットのOracle DL、すなわち2.112.3.0に置き換えました。
私は、64ビットマシンに32ビットクライアントをインストールしています。オペレーティングシステムはWindows 7です。
-
個々のプロジェクトを個別にコンパイルします。すべてのOracle依存ファイルのDLLを削除し、2.112.3.0のDLLを個別に追加して、各プロジェクトをコンパイルしてください。
-
次のステートメントを使用して、GACに32ビットDLLを登録します。 gacutil /i %ORA_HOME4%odp.netbin4Oracle.DataAccess.dll
gacutil /i %ORA_HOME4%asp.net.
上記2つの文のために、gacutil.exeをc:୧Program Files(x86)゙Microsoft sdk┣v7.0A↩Bin┣NETFX4.0 Tools┣からコピーしました。 をC:⇄ドライブにコピーしてください。
上記2つのステートメントを実行しました。
gacutil /i %ORA_HOME4%odp.net 오racle.DataAccess.dll gacutil /i %ORA_HOME4%Asp.net ↵oracle.web.dll 上記2つの文を実行したところ、何のメッセージも表示されず、Dos窓で管理者権限で実行しました。
- また、この場所からASP.netのTemporaryファイルをすべて削除しました。
c:\windowsMicrosoft.NetTemporary ASP.net files また、WebアプリケーションのビルドプラットフォームのターゲットをX86に変更しましたが、元々、"ANy CPU"になっていました。
Webapp またはその依存物の 1 つをロードまたはアセンブルしていません。不正なフォーマットでプログラムを読み込もうとしました。
私はIISをコンピュータにインストールしていません。私はこのアプリケーションをビジュアルスタジオ2010で実行しているので、ビジュアルスタジオに付属する内蔵のIISを使用することになると思います。
この問題を解決するために多くの時間を費やしましたが、まだ同じエラーが何度も出ています。
解決方法は?
あるマシンから別のマシンに移動し、すべてを再インストールしたときに、また問題が発生しました。私の場合、32ビットと64ビットの両方のOracle ODP.NETを使用しています。
新しいマシンでアセンブリをリストアップしたところ、以下のようなリストになりました。
C:\oracle\product\11.2.0\X64\odp.net\bin\4>gacutil /l|findstr Oracle.DataAccess
Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64
Policy.2.102.Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64
Policy.2.111.Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64
Policy.2.112.Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64
Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64
Policy.4.112.Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64
ここでは64bitのDLLしか見ることができません。
web.configでは確認できませんでしたが、使っていたのは32bit版でした。
GACutilで古いマシンをチェックしたところ、X86のものも含め、より多くのDLLが見つかりました。
登録のやり直しで修正(x32/x64版ともにこちらを参照)
OraProvCfg.exe /action:gac /providerpath:C:\oracle\product\11.2.0\x32\ODP.NET\bin\4\Oracle.DataAccess.dll
OraProvCfg.exe /action:gac /providerpath:C:\oracle\product\11.2.0\x64\ODP.NET\bin\4\Oracle.DataAccess.dll
その後、Visual Studioは幸せなウサギのように、すべてを再びコンパイルしてくれました。
関連
-
[解決済み] IISが起動URLと一致するウェブサイトをリストアップしない
-
[解決済み] この操作を完了するために十分なストレージがありません
-
[解決済み] クロームとファイヤフォックスでローカルホストが機能しない
-
[解決済み] C++プログラムをアセンブリに変換する
-
[解決済み] キーファイル 'blah.pfx' をインポートできない - エラー 'The keyfile may be password protected'.
-
[解決済み] BOMなしUTF-8
-
[解決済み] Visual Studio 2010 でクラスとメソッドを検索するショートカットは?
-
[解決済み] Visual Studio 2010でCtrl+scrollのズームを無効にする方法は?
-
[解決済み] Visual StudioのコマンドプロンプトでPowerShellを使用するにはどうすればよいですか?
-
[解決済み] NuGetパッケージマネージャのアップデート時のエラー
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Visual Studioの変換ウィザードを手動で起動する方法
-
[解決済み] System.Data.Entity.Infrastructure´のリファレンスは何ですか?
-
[解決済み] キーファイル 'blah.pfx' をインポートできない - エラー 'The keyfile may be password protected'.
-
[解決済み】Visual Studio 2010 - C++ プロジェクト - *.sdf ファイルを削除する。
-
[解決済み] Visual Studio 2010でCtrl+scrollのズームを無効にする方法は?
-
[解決済み] Visual Studio - ソリューションエクスプローラに移動するショートカット
-
[解決済み] IISのデバッグ時にVisual Studioの添付ファイルのセキュリティ警告をオフにする
-
[解決済み] ソリューションからnugetパッケージのrestoreを削除する
-
[解決済み] Visual StudioのコマンドプロンプトでPowerShellを使用するにはどうすればよいですか?
-
[解決済み] ソースコードのインデントを自動的に行うには?