Skip Headers
Oracle® Data Provider for .NET Developer's Guide
11g Release 1 (
  Go To Table Of Contents
Go To Index


Oracle Data Provider for .NET Versioning Scheme

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

ODP.NET and Forward

Starting with, 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 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 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, the corresponding ODP.NET assembly versions are:

  • .NET Framework 1.x version:

  • .NET Framework 2.0 version:

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

Before ODP.NET, 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,, and in the GAC, the .NET Framework uses the redirections set in the policy DLL, not the redirections set in the version of the policy DLL, even if the policy DLL is more recent. This situation can occur when versions prior to ODP.NET are installed on the same computer as ODP.NET 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.