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 higher.
For example, ODP.NET 18.104.22.168 binaries would be the following:
ODP.NET for .NET Framework 1.x·
Built with .NET Framework 1.0
Assembly version number: 1.x.x.x
Used by ODP.NET for .NET Framework 1.x
DLL version number: 1.x.x.x
ODP.NET for .NET Framework 2.0
Built with .NET Framework 2.0
Assembly version number: 2.x.x.x
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 two digits of the ODP.NET product version number.
o3o4 are the third and forth 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 22.214.171.124.0, the corresponding ODP.NET assembly versions are:
.NET Framework 1.x version: 126.96.36.199
.NET Framework 2.0 version: 188.8.131.52
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.