Oracle Data Provider for .NETバージョニング体系
Oracle Data Provider for .NET、管理対象外ドライバ; ODP.NET、管理対象ドライバ; およびODP.NET Coreには、それぞれ独自のバイナリ・セットが付属しています。
たとえば、23aiのバイナリは次のようになります:
-
.NET Framework 4の管理対象外ODP.NET
-
Oracle.DataAccess.dll
-
.NET Framework 4により作成
-
アセンブリのバージョン番号: 4.122.23.1
-
-
OraOps.dll
およびOracle Client-
ODP.NET for .NET Frameworkで使用
-
-
-
管理対象ODP.NET for .NET Framework 4:
-
Oracle.ManagedDataAccess.dll
-
.NET Framework 4により作成
-
アセンブリのバージョン番号: 4.122.23.1
-
-
-
ODP.NET Core:
-
Oracle.ManagedDataAccess.dll
-
.NET (Core)バージョンにより作成
-
アセンブリのバージョン番号: 23.1.0.0
-
-
管理対象および管理対象外ODP.NETアセンブリ/DLL製品バージョニングの表記規則は次のとおりです。
n1.o1o2.o3.o4:o5
ここで
-
n1は最も重要な.NET Frameworkのバージョン番号です。
-
o1o2はODP.NET 12.2のバージョン番号の最初の2桁を表していました。このバージョンを変更すると、アプリケーションを再構築せずにODP.NETのインプレース・アップグレードができなくなるため、122のままです。
-
o3はODP.NET製品のバージョン番号の最初の桁です。
-
o4は、リリースが本番バージョン(1)かベータ/プレリリース・バージョン(0)かを示します。
-
o5はODP.NETアセンブリのビルド日です。
たとえば、ODP.NETバージョン番号が23.4の場合、対応する管理対象および管理対象外ODP.NETアセンブリ製品バージョンは4.122.23.1:20240502です。
ODP.NET Coreの場合、アセンブリ製品のバージョン規則は次のとおりです:
n1.n2.o1.o2:o3
-
n1はODP.NET製品のバージョン番号の最初の桁です。
-
n2は、リリースが本番バージョン(1)かベータ/プレリリース・バージョン(0)かを示します。
-
o1は現在使用されていません。
-
o2は現在使用されていません。
-
o3は、ODP.NETアセンブリのビルド日です。
たとえば、ODP.NET Coreのバージョン番号が23.4の場合、対応するアセンブリ製品バージョンは23.1.0.0.20240502です。
ODP.NETアセンブリ・バージョンはアセンブリ製品バージョンとは異なります。アセンブリ・バージョンでは4組の数字が使用され、アセンブリ製品バージョンでは5組の数字が使用されます。ODP.NETリリースごとに、アセンブリ・バージョンとアセンブリ製品バージョンの最初の4組の数字が同じになります。たとえば、ODP.NET Coreアセンブリ製品バージョンが23.1.0.0.20240502の場合、そのアセンブリ・バージョンは23.1.0.0です。管理対象および管理対象外ODP.NET 4.122.23.1:20240502の場合、アセンブリ・バージョンは4.122.23.1です。
アセンブリ製品バージョンは、使用される正確なODP.NETバージョンを識別します。メジャー・リリース・ファミリ内にOracleが出荷する複数の更新があるため、ODP.NETアセンブリ製品バージョンをサポート・コンテキストで指定します。
アセンブリ・バージョンは、さらに多くの.NET固有のコンテキストで使用されます。たとえば、.NET構成ファイルの<version>
セクションでは、4桁のアセンブリ・バージョンを使用して、使用するODP.NETバージョンを識別します。
アセンブリ製品バージョン番号は、WindowsのODP.NET DLLのProduct versionプロパティにあります。アセンブリ・バージョンは、WindowsのODP.NET DLLのFile versionプロパティにあります。
Oracleインストーラおよびマニュアルでは、アセンブリ/DLLバージョン番号ではなく、ODP.NET製品のバージョン番号を参照している点に注意してください。
従来どおりPublisher Policy DLLが提供されているため、旧バージョンのODP.NETにより作成されたアプリケーションは、バージョニング体系が変更されていても、より新しいODP.NETアセンブリにリダイレクトされます。
ODP.NET管理対象ドライバのバージョニング
ODP.NET管理対象ドライバで、AssemblyVersionAttribute
属性値が同一である複数のアセンブリを一意に識別するためにアセンブリ・マニフェスト属性AssemblyInformationalVersionAttribute
が使用されます。この値には、.NETコード、PowerShellおよびその他のWindowsアプリケーションからアクセスしてODP.NET管理対象ドライバのバージョンを一意に識別することができます。
AssemblyInformationalVersionAttribute
は、実際の.NETアセンブリ・バージョンと同じバージョンに設定されます。
この値には、.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管理対象ドライバの場合のみです。