アプリケーションタイプのため、OCI.DLLにアクセスできません
-
19-09-2019 - |
質問
Visual Studio 2008のエンティティフレームワークを介してOracleデータベースへの接続を作成しようとしています。64ビットVista Ultimateを実行しています。
最初は、Visual Studioを介してDBに接続することさえ困難でしたが、最終的には10204_VISTA_W2K8_X64_Production_DBとODTWITHODAC1110720をインストールすることで機能しましたが、Visual Studioを介してインターフェイスするために必要な最小限のパーツのみが必要です。
私はこのセットアップをまったく初めて行っているので、すでに間違いを犯した可能性がありますが、両方のパッケージをインストールすることは、Visual Studioを介して接続を作成できる唯一の方法です。
接続を行い、ウィザードを使用してaを作成しました。 EDMXファイル。モデルと協会は完全に作成され、私は物事がうまく機能すると思いました。デフォルト名「エンティティ」を参照名として使用しました。
次のことをしようとするとき
filingsContext = New Entities()
filingsContext.TABLE_NAME_HERE.First()
次のエラーが発生します。
Innerexception = {"C: App Adexter orahome_1 oci.dllをロードできません。64Xアプリケーションで64XバージョンのOracleクライアントを使用していることを確認してください。"}
アプリケーションを実行しているときを除いて、すべての時点でOracle DBに接続できるのはどうですか?
解決
あなたが遭遇している問題は、64ビットアプリケーション内で32ビットバージョンのDLLをロードしようとしていることです。視覚的な基本アプリケーションを32ビット / x86をターゲットに切り替えてみてください。
- ソリューションエクスプローラーのプロジェクトを右クリックします
- プロパティ]を選択します
- コンパイル]タブに移動します
- Advancedコンパイルオプション]をクリックします
- ターゲットCPUコンボをx86に変更します
- OKを押してください
他のヒント
ODACを使用してODTの64ビットバージョンをインストールしていることを確認してください。
見る この答え アプリケーションがどのクライアントバージョンを使用するかを確認する方法について(Endの一部のリンクは、より具体的にはC#言語をより具体的にターゲットにしますが、VB .NETに適合させることができます)。