Oracle Data Provider for .NET Versioning Scheme

The ODP.NET versioning scheme changed with ODP.NET 10.2.0.2.20 as described in these sections:

ODP.NET 10.2.0.2 and Forward

Starting with 10.2.0.2, Oracle Data Provider for .NET ships with two sets of binaries: one set for .NET Framework 1.x and another for .NET Framework 2.0 and later.

For example, ODP.NET 11.1.0.6 binaries would be the following:

  • ODP.NET for .NET Framework 1.x·

    • Oracle.DataAccess.dll

      • Built with .NET Framework 1.0

      • Assembly version number: 1.x.x.x

    • OraOps11.dll

      • Used by ODP.NET for .NET Framework 1.x

      • DLL version number: 1.x.x.x

  • ODP.NET for .NET Framework 2.0

    • Oracle.DataAccess.dll

      • Built with .NET Framework 2.0

      • Assembly version number: 2.x.x.x

    • OraOps11w.dll

      • Used by ODP.NET for .NET Framework 2.0

      • DLL version number: 2.x.x.x

The convention for ODP.NET assembly/DLL versioning is

n1.o1o2.o3o4.o5

where:

  • n1 is the most significant .NET Framework version number.

  • o1o2 are the first and second digits of the ODP.NET product version number.

  • o3o4 are the third and fourth digits of the ODP.NET product version number.

  • o5 is the fifth and last digit of the ODP.NET product version number.

For example, if the ODP.NET product version number is 11.1.0.6.20, the corresponding ODP.NET assembly versions are:

  • .NET Framework 1.x version: 1.111.6.20

  • .NET Framework 2.0 version: 2.111.6.20

Note that the Oracle installer and documentation still refer to the ODP.NET product version number and not the assembly/DLL version number.

As with the .NET Framework system libraries, the first digit of the assembly version number indicates the version of the .NET Framework to use with an ODP.NET assembly.

Publisher Policy DLL is provided as before so that applications built with older version of ODP.NET are redirected to the newer ODP.NET assembly, even though the versioning scheme has changed.

Prior to ODP.NET 10.2.0.2.20

Before ODP.NET 10.2.0.2.20, the policy DLL version was based solely on the corresponding Oracle version number. It did not include the .NET Framework version number. Thus, the first digit of the policy DLL version started with 9 or 10 (such as, Policy.9.2.Oracle.DataAccess.dll), depending on the Oracle version number that ODP.NET shipped with.The .NET Framework allows multiple versions of the same policy DLL to be registered in the Global Assembly Cache (GAC). For example, multiple versions of Policy.10.2.Oracle.DataAccess.dll can be placed in the GAC. In such a case, the .NET Framework applies the policy DLL redirections of the HIGHEST version number. If you have Policy.10.2.Oracle.DataAccess.dll policy DLLs of versions of 10.2.0.1.0, 10.2.0.2.0, and 2.102.2.20 in the GAC, the .NET Framework uses the redirections set in the 10.2.0.2.0 policy DLL, not the redirections set in the 2.102.2.20 version of the policy DLL, even if the 2.102.2.20 policy DLL is more recent. This situation can occur when versions prior to ODP.NET 10.2.0.2.20 are installed on the same computer as ODP.NET 10.2.0.2.20 or later.To assure that redirections go to the latest policy DLL, any older ODP.NET policy DLLs must be removed from the GAC, leaving only the latest ODP.NET policy DLL in the GAC.