Currently we have an older version of ODP.NET installed on the server ( I believe 2.116).
I want to migrate to the newer version that supports the Entity Framework -- ODAC 11.2 Release 5 (18.104.22.168.20).
I have quite a few web applications that are referencing the 2.116 version, so I don't want to break the compatibility with existing applications.
However, if I install the new version of the ODAC, I seem to lose the 2.116 version (does not pick up in my Visual Studio references even though still installed). I have installed the newer ODAC in a new Oracle Home as was recommended in the installation instructions. The other issue is that I cannot pick up the 22.214.171.124 version of Oracle.DataAccess.dll even thought I can see it successfully installed.
I even tried uninstalling all ODAC components and then reinstalling but that didn't seem to help me out. There are a million registry entries that get generated and those registry entries don't seem to be removed by default.
So has anyone done this migration before successfully and how did you go about it?
You're "losing" the older version (126.96.36.199) because the installer for 11.2.03 installs policy binding redirects into the GAC that direct .net to load the newer version instead. If you want to use the older version with the newer version installed, you'll need to remove those policies. You can do that using gacutil.
Alternately if you only want to disable it for a given application, you can put an entry in your config file as described here: http://stackoverflow.com/questions/10700669/why-does-my-application-always-uses-the-latest-gac-version-instead-of-referenced
All that being said, when we did this at my work, we didn't keep both versions. We just removed the old one and put the new one on, only having one version on the server. We did that because in the past we had upward of four versions at one time installed and it turned into a total nightmare of "something altered the path, an app just broke" type insanity that was horrible to try and troubleshoot. What we did to prepare for that was just load every app on a test server and run it without recompiling, letting the policies pick up the new Oracle client version automatically. Between 11.1 and 11.2 this worked really well. We had a couple of issues for things built against 10, but a recompile with the new reference fixed them. We currently have everything running on 188.8.131.52 and it's a lot less complicated that way. (Only exception is some stuff we're testing with the managed client beta, which is awesome.)