Oracle® Data Provider for .NET開発者ガイド ODAC 12c リリース4 (12.1.0.2) for Microsoft Windows E72575-01 |
|
前 |
次 |
11.2.0.1.2以降、Oracle Data Provider for .NET管理対象外ドライバには、.NET Framework 2.0および.NET Framework 4用に1セットずつ、2セットのバイナリが用意されています。ODP.NET管理対象ドライバには、バイナリが1セット(.NET Framework 4用)用意されています。
たとえば、ODP.NET 11.2.0.1.2のバイナリは次のようになります。
ODP.NET for .NET Framework 4
Oracle.DataAccess.dll
.NET Framework 4により作成
アセンブリ・バージョン番号: 4.x.x.x
OraOps11w.dll
ODP.NET for .NET Framework 2.0および4で使用
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および4で使用
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.2.0.2の場合、対応するODP.NETアセンブリ・バージョンは次のとおりです。
.NET Framework 4バージョン: 4.112.2.0
.NET Framework 2.0バージョン: 2.112.2.0
Oracleインストーラおよびマニュアルでは、アセンブリ/DLLバージョン番号ではなく、ODP.NET製品のバージョン番号を参照している点に注意してください。
.NET Frameworkシステム・ライブラリと同様に、アセンブリ・バージョン番号の1桁目はODP.NETアセンブリとともに使用する.NET Frameworkのバージョンを示します。
従来どおりPublisher Policy DLLが提供されているため、旧バージョンのODP.NETにより作成されたアプリケーションは、バージョニング体系が変更されていても、より新しいODP.NETアセンブリにリダイレクトされます。
ODP.NET管理対象ドライバは、そのバイナリと同じバージョンのモデルに対応します。
ODP.NET for .NET Framework 4:
Oracle.ManagedDataAccess.dll
.NET Framework 4により作成
アセンブリ・バージョン番号: 4.x.x.x
Oracle.ManagedDataAccessDTC.dll
ODP.NET for .NET Framework 4の分散トランザクションでのみ使用されます。
ODP.NET管理対象ドライバのバージョニング
ODAC 12cリリース2からは、ODP.NET管理対象ドライバで、AssemblyVersionAttribute
属性値が同一である複数のアセンブリを一意に識別するためにアセンブリ・マニフェスト属性AssemblyInformationalVersionAttribute
が使用されます。この値には、.NETコード、PowerShellおよびその他のWindowsアプリケーションからアクセスしてODP.NET管理対象ドライバのバージョンを一意に識別することができます。
AssemblyInformationalVersionAttribute
は、実際の.NETアセンブリ・バージョンと同じバージョンに設定されますが、4桁目は例外で、この桁は0ではなくなります。かわりに、バージョンはODP.NET管理対象ドライバのリリースごとに一意となり、新しいリリースのたびに4桁目に1が加算されます。
この値には、.NET Framework System.Diagnostics.FileVersionInfo.ProductVersionプロパティを使用してアクセスできます。返された値は、Versionオブジェクトとして、または比較用のStringとして比較の演算子やメソッドで使用できます。要約すると、ODP.NET管理対象ドライバのアセンブリのうち、アセンブリ・バージョンが同一であるものの集合の中では、最も新しいODP.NET管理対象ドライバ・アセンブリの4桁目ProductVersion
の値が他の古いアセンブリよりも大きいことになります。
PowerShellの例: この例では、管理者がODP.NET管理対象ドライバの各バージョンのアセンブリをそれぞれ区別しており、ある古いバージョンのODP.NET管理対象ドライバがc:\old
に、それよりも新しいバージョンがc:\new
にあります。
スクリプト:
$VC1 = New-Object System.Version((Get-Command C:\old\Oracle.ManagedDataAccess.dll).FileVersionInfo.ProductVersion) $VC2 = New-Object System.Version((Get-Command C:\new\Oracle.ManagedDataAccess.dll).FileVersionInfo.ProductVersion) "Compare V1 to V2: " + $VC1.CompareTo($VC2) "Compare V1 to V1: " + $VC1.CompareTo($VC1) "Compare V2 to V1: " + $VC2.CompareTo($VC1)
出力:
Compare V1 to V2: -1 Compare V1 to V1: 0 Compare V2 to V1: 1
注意: ProductVersion プロパティの比較によって、どちらのバージョンが他方よりも新しいかに関する正しい情報が得られるのは、ODP.NET管理対象ドライバのうち、ODAC 12cリリース2以上からリリースされたものに限られます。 |