Krótka odpowiedź:
Uwaga:próbowałem zainstalować nowy ODP.NET na poprzednim kliencie i mogłem połączyć się z bazą danych przy użyciu następującego ciągu połączeń...
Oznacza to, że nowa instalacja nie zawiera plików tnsnames.ora i sqlnet.ora w katalogu /Network/Admin. Jeśli jesteś w porządku ze starym klientem używającym nowej instalacji ODP.net, możesz albo skopiować je ze starej instalacji, albo możesz określić globalną lokalizację dla wszystkich instancji za pomocą zmiennej środowiskowej TNS_ADMIN, tj. TNS_ADMIN=C:\MyOracleFilesDir
Długa odpowiedź:
Po zainstalowaniu nowego klienta najprawdopodobniej zainstalował on również pliki zasad wydawcy w GAC, które przekierowują odwołania do starej biblioteki Oracle.DataAccess.dll do nowej wersji podczas procesu rozpoznawania zestawu. Oracle.DataAccess następnie lokalizuje klienta za pomocą parametru (DllPath) w rejestrze. Możesz zmienić tę lokalizację, ustawiając dllPath w pliku .config:
<configuration>
<oracle.dataaccess.client>
<add key="DllPath" value="C:\yourotherpath"/>
</oracle.dataaccess.client>
</configuration>
Generalnie to robię, ale gdy rozumiem to lepiej, zdaję sobie sprawę, że wymuszam nowszą bibliotekę dll przeciwko starszemu klientowi. Jeśli Twoim celem jest pozostawienie starego klienta nietkniętego, lepszą opcją może być usunięcie zasad wydawcy z GAC (nie sądzę, że są one nawet instalowane z pełną instalacją ODAC, tylko z ODP.net):
Jeśli musisz je ponownie zainstalować, zazwyczaj znajdziesz je pod adresem oraclepath\odp.net\PublisherPolicy.
Inną i być może lepszą opcją długoterminową jest skonfigurowanie starych klientów tak, aby ignorowały zasady wydawcy:http://msdn.microsoft.com/en-us/library/cf9025zt%28v=vs.80%29.aspx
Wreszcie, jestem prawie pewien, że komponenty .net dla frameworków 2.0 vs. 4.0 są oddzielnymi opcjami instalacji podczas instalacji ODP.net. Myślę, że możesz uniknąć tego problemu, po prostu nie instalując komponentów 2.0. W tej notatce możesz wykonać podobną pracę, rozwijając swój nowy projekt zamiast 64-bitowego odp.net. Podobnie jak v2.0 i v4.0, wersje 32-bitowe i 64-bitowe również nie mają żadnej wzajemnej świadomości.