sql >> Databasteknik >  >> RDS >> Oracle

Hur man installerar ODP.NET 2.111 och ODP.NET 4.112 i samma maskin sida vid sida medan båda pekar på samma databasserver

Det korta svaret:

Obs:Jag försökte installera den nya ODP.NET över den tidigare klienten och kunde ansluta till databasen med följande anslutningssträng...

Detta indikerar att din nya installation inte har en tnsnames.ora och sqlnet.ora i /Network/Admin. Om du är okej med den gamla klienten som använder den nya ODP.net-installationen kan du antingen kopiera dem från den gamla installationen eller så kan du ange en global plats för alla instanser med miljövariabeln TNS_ADMIN, dvs. TNS_ADMIN=C:\MyOracleFilesDir

Det långa svaret:

När du installerade den nya klienten installerade den med största sannolikhet också utgivarpolicyfiler i GAC som omdirigerar referenser till den gamla Oracle.DataAccess.dll till den nya versionen under monteringsupplösningsprocessen. Oracle.DataAccess lokaliserar sedan klienten via en parameter (DllPath) i registret. Du kan åsidosätta den här platsen genom att ställa in dllPath i din .config-fil:

<configuration>
  <oracle.dataaccess.client>
    <add key="DllPath"            value="C:\yourotherpath"/>
  </oracle.dataaccess.client>
</configuration>

Detta är i allmänhet vad jag gör, men när jag förstår detta mer inser jag att jag tvingar en nyare dll mot en äldre klient. Om ditt mål är att lämna den gamla klienten orörd, kan ett bättre alternativ vara att ta bort utgivarpolicyerna från GAC (jag tror inte ens att de installeras med den fullständiga ODAC-installationen, bara ODP.net):

Om du behöver installera om dem finns de vanligtvis på oraclepath\odp.net\PublisherPolicy.

Ett annat, och kanske ett bättre långsiktigt alternativ, är att konfigurera de gamla klienterna så att de ignorerar publicistpolicyn:http://msdn.microsoft.com/en-us/library/cf9025zt%28v=vs.80%29.aspx

Slutligen är jag ganska säker på att .net-komponenterna för ramverken 2.0 vs. 4.0 är separata installationsalternativ under ODP.net-installationen. Jag tror att du kanske kan undvika detta problem helt enkelt genom att inte installera 2.0-komponenterna. På den noten kan du göra ett liknande arbete genom att utveckla ditt nya projekt mot 64-bitars odp.net istället. Liksom v2.0 och v4.0, har 32 bitar och 64 bitar inte heller någon medvetenhet om varandra.




  1. MySQL Snabbtips:Använd funktionen DAYOFWEEK

  2. Uppdatera Salesforce-data med en SQL Server-markör

  3. Fel:PLS-00428:en into-sats förväntas i denna select-sats

  4. Mysql-behörighetsfel med "ladda data"