ODACの11g、12cにはOracle.ManagedDataAccessというのが追加されており、ネイティブコードが無くなったのでサーバー環境へのデプロイ時にODP.NETやOracleClientのインストールが不要になる!ということで、やり方を調べてみたメモ。
これのBのパターンでうまく行った。
- WCFサービスのホストプロジェクトなどDB接続が必要になるプロジェクトの参照にEntityFramewrokとOracle.ManagedDataAccessを追加し、ローカルコピーをTrueに
- Web.config/App.configを以下のように設定
[xml]
[/xml]
- 適当にデプロイ
Oracle.ManagedDataAccessDTC.dll が必要な場合
- TransactionScope を使う場合など、Oracle.ManagedDataAccessDTC.dll が必要な時がある
- 無いと実行時に
FileNotFoundException
で死ぬ
- 無いと実行時に
- Oracle.ManagedDataAccess.dllと同様に、実行パスかGACに入ってればOK
- Microsoft Visual C++ 2010 SP1 再頒布可能パッケージ を必要とする点に注意 (SP1じゃなくても大丈夫だとは思うが…)
- これも同様に、インストールされていないと実行時に
FileNotFoundException
で死ぬ
- これも同様に、インストールされていないと実行時に
- Oracle.ManagedDataAccessDTC.dll も Microsoft Visual C++ 2010 SP1 再頒布可能パッケージ も32bit版と64bit版があるので、実行環境に合わせたものを使おう