Det korte svar:
Bemærk:Jeg prøvede at installere den nye ODP.NET over den tidligere klient og var i stand til at oprette forbindelse til databasen ved hjælp af følgende forbindelsesstreng...
Dette indikerer, at din nye installation ikke har en tnsnames.ora og sqlnet.ora i /Network/Admin. Hvis du er ok med den gamle klient, der bruger den nye ODP.net-installation, kan du enten kopiere dem fra den gamle installation, eller du kan angive en global placering for alle forekomster med TNS_ADMIN-miljøvariablen, dvs. TNS_ADMIN=C:\MyOracleFilesDir
Det lange svar:
Når du installerede den nye klient, har den højst sandsynligt også installeret udgiverpolitikfiler i GAC'en, der omdirigerer referencer til den gamle Oracle.DataAccess.dll til den nye version under assembly-opløsningsprocessen. Oracle.DataAccess lokaliserer derefter klienten via en parameter (DllPath) i registreringsdatabasen. Du kan tilsidesætte denne placering ved at indstille dllPath i din .config-fil:
<configuration>
<oracle.dataaccess.client>
<add key="DllPath" value="C:\yourotherpath"/>
</oracle.dataaccess.client>
</configuration>
Dette er generelt, hvad jeg gør, men efterhånden som jeg forstår dette mere, indser jeg, at jeg tvinger en nyere dll mod en ældre klient. Hvis dit mål er at lade den gamle klient være urørt, kan en bedre mulighed være at slette udgiverpolitikkerne fra GAC (jeg tror ikke engang, de er installeret med den fulde ODAC-installation, kun ODP.net):
Hvis du har brug for at geninstallere dem, findes de generelt på oraclepath\odp.net\PublisherPolicy.
En anden, og måske en bedre langsigtet mulighed, er at konfigurere de gamle klienter til at ignorere udgiverpolitikken:http://msdn.microsoft.com/en-us/library/cf9025zt%28v=vs.80%29.aspx
Endelig er jeg ret sikker på, at .net-komponenterne til 2.0 vs. 4.0-rammerne er separate installationsmuligheder under ODP.net-installationen. Jeg tror, du måske kan undgå dette problem blot ved ikke at installere 2.0-komponenterne. På den note kunne du gøre et lignende arbejde rundt ved at udvikle dit nye projekt mod 64 bit odp.net i stedet. Ligesom v2.0 og v4.0 har 32 bit og 64 bit heller ikke nogen bevidsthed om hinanden.