7月 162014
 
11月 222013
 

ODACの11g、12cにはOracle.ManagedDataAccessというのが追加されており、ネイティブコードが無くなったのでサーバー環境へのデプロイ時にODP.NETやOracleClientのインストールが不要になる!ということで、やり方を調べてみたメモ。

参考:oracle – Deploying and Configuring ODP.NET to work without installation with Entity Framework – Stack Overflow

これの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版があるので、実行環境に合わせたものを使おう