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のバージョンは関係なくなるため、エラーが改善する可能性があります。