この項で説明するように、ODP.NET 10.2.0.2.20ではODP.NETバージョニング体系が変更されました。
10.2.0.2以降、Oracle Data Provider for .NETには、.NET Framework 1.xおよび.NET Framework 2.0用に1セットずつ、2セットのバイナリが用意されています。
たとえば、ODP.NET 11.1.0.6のバイナリは次のようになります。
ODP.NET for .NET Framework 1.x
Oracle.DataAccess.dll
.NET Framework 1.0により作成
アセンブリ・バージョン番号: 1.x.x.x
OraOps11.dll
ODP.NET for .NET Framework 1.xで使用
DLLバージョン番号: 1.x.x.x
ODP.NET for .NET Framework 2.0
Oracle.DataAccess.dll
.NET Framework 2.0により作成
アセンブリ・バージョン番号: 2.x.x.x
OraOps11w.dll
ODP.NET for .NET Framework 2.0で使用
DLLバージョン番号: 2.x.x.x
ODP.NETアセンブリ/DLLバージョニングの表記規則は次のとおりです。
n1.o1o2.o3o4.o5
ここで
n1は最も重要な.NET Frameworkのバージョン番号です。
o1o2はODP.NET製品のリリース番号の最初の2桁です。
o3o4はODP.NET製品のリリース番号の3桁目および4桁目です。
o5oはODP.NET製品のリリース番号の5桁目および最後の桁です。
たとえば、ODP.NET製品のリリース番号が11.1.0.6.20の場合、対応するODP.NETアセンブリ・バージョンは次のとおりです。
.NET Framework 1.xバージョン: 1.111.6.20
.NET Framework 2.0バージョン: 2.111.6.20
Oracleインストーラおよびマニュアルでは、アセンブリ/DLLバージョン番号ではなく、ODP.NET製品のバージョン番号を参照している点に注意してください。
.NET Frameworkシステム・ライブラリと同様に、アセンブリ・バージョン番号の1桁目はODP.NETアセンブリとともに使用する.NET Frameworkのバージョンを示します。
従来どおりPublisher Policy DLLが提供されているため、旧バージョンのODP.NETにより作成されたアプリケーションは、バージョニング体系が変更されていても、より新しいODP.NETアセンブリにリダイレクトされます。
ODP.NET 10.2.0.2.20より前のリリースでは、ポリシーDLLのバージョンは対応するOracleのバージョン番号のみに基づいていました。.NET Frameworkのバージョン番号は含まれていませんでした。このため、ポリシーDLLバージョンの最初の桁は、ODP.NETが送信するOracleバージョン番号に基づいて、9または10で開始していました(Policy.9.2.Oracle.DataAccess.dll
など)。.NET Frameworkでは、同一のポリシーDLLの複数のバージョンがグローバル・アセンブリ・キャッシュ(GAC)に登録されます。たとえば、Policy.10.2.Oracle.DataAccess.dll
の複数のバージョンをGACに配置できます。このような場合、.NET Frameworkでは、バージョン番号が最高値のポリシーDLLのリダイレクトを適用します。GACにバージョン10.2.0.1.0、10.2.0.2.0および2.102.2.20のPolicy.10.2.Oracle.DataAccess.dll
ポリシーDLLがある場合、.NET Frameworkは、2.102.2.20ポリシーDLLが最新でも、ポリシーDLLのバージョン2.102.2.20に設定されたリダイレクトではなく、10.2.0.2.0ポリシーDLLに設定されたリダイレクトを使用します。ODP.NET 10.2.0.2.20より前のリリースが、ODP.NET 10.2.0.2.20以降と同じコンピュータにインストールされたとき、この状況は発生します。最新のポリシーDLLへのリダイレクトを確実にするには、古いポリシーDLLをGACから削除し、GACにある最新のODP.NETポリシーDLLのみを保存します。