2.4 Oracle Data Provider for .NET管理対象外ドライバのインストール
Oracle Data Provider for .NETはOracle Data Access Components(ODAC)の一部であり、OTNからダウンロードできます。ODAC 11.1.0.6.20から、Oracle Data Provider for .NETはXCopyまたはOracle Universal Installerを使用してインストールできるようになりました。
-
XCopy
XCopyは、Oracle Data Provider for .NETを多数のコンピュータに本番デプロイ用にデプロイする場合に、管理者が使用します。インストールおよび構成中のXCopyのインストール・サイズはOracle Universal Installerに比べて小さく、また、XCopyにはファイングレイン・コントロールがあります。
-
Oracle Universal Installer(OUI)
開発者および管理者は、Oracle Universal Installerを使用してODP.NETの自動インストールを行います。これには、XCopyに含まれていないドキュメントおよびサンプル・コードが含まれています。
注意:
この項では、Oracle Universal Installerを使用したインストールについて説明します。XCopyを使用したインストールおよび構成については、インストールに含まれているREADME.TXTを参照してください。
さらに、Oracle Data Provider for .NET Dynamic Helpが、Visual Studio .NETとともに登録され、Visual Studio .NET Dynamic Helpとシームレスに統合された文脈依存のオンライン・ヘルプを提供します。Dynamic Helpでは、ユーザーは、ODP.NETのキーワードにカーソルを置き、[F1]キーを押すことで、Visual Studio .NET IDE内のODP.NETドキュメントにアクセスできます。
Oracle Data Provider for .NETは、インストール先のコンピュータのmachine.config
ファイルに、OracleClientFactory
クラスを使用したアプリケーション用のエントリを作成します。これにより、DbProviderFactories
クラスがODP.NETを認識できるようになります。
ODP.NET管理対象外ドライバのEntity Framework 6およびCode First機能は、NuGetパッケージを通じて利用できます。OUIおよびXcopyのインストールにはこのパッケージも含まれていますが、インストール後の構成手順が必要です。ODP.NET管理対象外ドライバのEntity Framework用のNuGetパッケージでは、インストール後の手順が自動化されていますが、アプリケーション固有の接続文字列設定のみ必要になります。
2.4.1 インストール後のファイルの場所
Oracle.DataAccess.dll
アセンブリは、次の場所にインストールされます
.NET Framework 2.0:
ORACLE_BASE
\
ORACLE_HOME
\
odp.net\bin\2.x
ディレクトリ
.NET Framework 4:
ORACLE_BASE
\
ORACLE_HOME
\
odp.net\bin\4
ディレクトリ
注意:
対応する.NET Frameworkがマシンにインストールされている場合、Oracle.DataAccess.dll
アセンブリもグローバル・アセンブリ・キャッシュ(GAC)に追加されます。これによって、既存のアプリケーションは、新しくインストールされたODP.NETバージョンをすぐに使用して確実に起動できます。ただし、この動作が適切でない場合は、GACからポリシーDLLを削除してください。
ドキュメントおよびreadme.txt
ファイルは、ORACLE_BASE
\
ORACLE_HOME
\
ODACDoc\DocumentationLibrary\doc\index.htm
にあります。
サンプルはORACLE_BASE
\
ORACLE_HOME
\
ODACsamples
ディレクトリに用意されています。
2.4.2 非管理DLLの検索順序
ODP.NETは、管理バイナリと非管理バイナリで構成されています。DllPath
構成パラメータを使用すれば、依存する非管理Oracle Clientバイナリのロード元の場所ORACLE_BASE\\ORACLE_HOME
\bin
をアプリケーションごとに指定できます。ただし、ORACLE_BASE\\ORACLE_HOME
には、アプリケーションで使用されるものと同じバージョンのODP.NETがインストールされている必要があります。インストールされていない場合、バージョンの不一致による例外がスローされます。
Oracle.DataAccess.dll
は、依存する非管理DLL(Oracle Clientなど)を次の順序に基づいて検索します。
-
アプリケーションまたは実行可能ファイルのディレクトリ。
-
アプリケーションの構成ファイルまたは
web.config
に指定されたDllPath
設定。 -
machine.config
に指定されたDllPath
設定。 -
Windowsレジストリに指定された
DllPath
設定。HKEY_LOCAL_MACHINE\Software\Oracle\
ODP.NET\
version
\DllPath
-
Windowsの
PATH
環境変数で指定されたディレクトリ。
ODP.NETのインストール時に、Oracle Universal Installerは、DllPath
Windowsレジストリ値を対応する依存DLLがインストールされたORACLE_BASE\\ORACLE_HOME
\bin
ディレクトリに設定します。開発者はこの構成情報をアプリケーションごとに指定する必要があります。
新しいバージョンのODP.NETがインストールされると、その新規バージョンに対応したデフォルト値がWindowsレジストリに設定されます。ポリシーDLLがすべてのODP.NET参照をこの新規バージョンのODP.NETにリダイレクトするため、アプリケーションはデフォルト値を使用します。開発者は、このリダイレクトを回避するため、アプリケーションに固有の構成ファイルまたはweb.config
ファイルを指定する必要があります。構成ファイルの設定は、パッチや新規バージョンが後からインストールされたかどうかにかかわらず、常にアプリケーションに適用されます。
注意:
.NET Framework 2.0用のOracle.DataAccess.dll
および.NET Framework 4用のOracle.DataAccess.dll
は両方とも同じ非管理DLL(OraOps12.dll
)を使用します。