Oracle.DataAccess.dllの参照設定の注意点
ODP.NET
でOracle
に接続しているシステムを、本番環境などの別PCに持って行ったときに、エラーになることがあります。
ソリューションのOracle.DataAccess.dll
の参照を見直せば解決するかもしれません。
OracleClient
をインストールしている場合、Oracle.DataAccess.dll
は以下のフォルダにあります。
(以下の例では12.1.0
をインストールしている場合の例になりますが、どのバージョンでも大きくは変わりません。)
- C:\app\client\ユーザー名\product\12.1.0\client_1\ODP.NET\bin\2.x
- C:\app\client\ユーザー名\product\12.1.0\client_1\ODP.NET\bin\4
上記フォルダにあるOracle.DataAccess.dll
を参照に追加しているソリューションは、注意が必要です。
この状態でビルドして作成されたプログラムのdllをファイルを別のPC(テスト環境や本番環境)にもっていった場合、そのPCにインストールされているOracle.DataAccess.dll
を参照するようになります。
そのため、OracleClient
のバージョンが異なるとエラーになります。
対処法
すべてのPCのOracleClient
のバージョンを合わせる必要が出てきてしまいますので、Oracle.DataAccess.dll
はソリューション内にコピーしたものを参照するようにします。(ソリューションのbin
フォルダにOracle.DataAccess.dll
が存在するような構成)
この状態でビルドして作成されたプログラムのdllをファイルを別のPC(テスト環境や本番環境)にもっていった場合、実行環境のbin
フォルダにあるOracle.DataAccess.dll
を参照します。
この方法なら開発PCにインストールされているOracle.DataAccess.dll
のバージョンは関係なくなるため、エラーが改善する可能性があります。