web-dev-qa-db-ja.com

64ビットマシンで32ビットモードでOracleクライアントを実行する

32ビットWindows 7デスクトップから64ビットWindows 7ラップトップに移動しました。私たちが開発中のC#プログラムには、ソリューション内に約60のプロジェクトが含まれています。ビルドしようとすると、次のエラーが発生し続けます。

Attempt to load Oracle client libraries threw BadImageFormatException. This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed

明らかに、エラーは非常に自明であり、私のソリューション全体を32ビットモードでロードしようとしています。すべてのプロジェクトを実行し、ターゲットプラットフォームをx86に設定しましたが、まだこのエラーが発生します。私はGoogleを検索して、無数の異なるアプローチを見てきましたが、この問題を修正することができないようです。プロジェクトが64ビットマシンで32ビットモードで実行されていることを確認するための最良の方法は何ですか?

私はVisual Studio 2008を使用しています。現在32ビットへのダウングレードを検討していますが、これを回避する必要はありません。

10
Joseph

64ビットのマシンで実行している場合でも、32ビットのOracleクライアントをインストールする必要があることがわかりました(インストーラのダウンロードは インストーラをダウンロード できます)。

さらに、ディスカッションの間、人々は32ビットモードなどについて話していました。これは、IIS 7のホストアプリケーションに対して確認または設定できる方法です。これを変更する必要はありませんが、完全性/将来の参照のためにここに追加しました。

  • IIS 7を起動し、サーバー名ノードを展開します。
  • Application Poolsノードをクリックして、使用しているアプリケーションプールを見つけます。
  • 右側のパネルで詳細設定...をクリックします
  • 表示されるポップアップボックスで、上から3番目のオプションであるEnabled 32-Bit Applications設定を確認します。
11
Belogix

32ビットとしてのみ実行するには、メインの.exeファイルを変更する必要があります。これはVisual Studioで行うことができます。プラットフォームターゲットを「任意のCPU」から「x86」に変更するだけです。

これが不可能な場合は、既存のexeを強制的に32ビットアプリケーションにするcorflags.exeを使用します。

5
Piotr Stapp

私はこの問題に何ヶ月も苦労してきて、ようやく解決しました。私はすべての投稿が役に立ったと思いますが、1つ欠けていました。 Microsoft ODBCは、ユーザーDSNまたはシステムDSNのOracleインスタンス設定用ではありませんでした。Windows8マシンで作業しているため、一般的なWindows検索に移動する必要がありました。 ODBCと入力し、ODBC Data Source Administrator(32-bit)を開きます。MicrosoftODBCユーザーDSNタブまたはシステムDSNタブでのOracleセットアップの場合。追加しない場合は、追加をクリックしてMicrosoftを選択しますODBC Oracleの場合。ヒットするデータソースの情報を入力してください。 [OK]をクリックします。必ずコンピュータを再起動してください。これが最終的に私にとってうまくいきました。

2
zeroend

私の場合、64ビットのOracleクライアントがマシンにインストールされましたが、それでも同じエラーが発生します。したがって、アプリケーションで右クリックして[プロパティ]-> [Web]タブに移動し、ローカルIISを使用している場合は[Use IIS Express]オプションをオフにすることを分析しました。 Webサーバー。問題は解決しました。

0
user3906334

32ビットとしてのみ実行するには、メインの.exeファイルを変更する必要があります。これはVisual Studioで実行できます。プラットフォームターゲットを「任意のCPU」から「x86」に変更するだけです。 https://msdn.Microsoft.com/en-us/library/ms185328.aspx

0
user7597235