sql >> Database >  >> RDS >> Oracle

Oracle.Dataaccess bevindt zich in de GAC. Kan ik de versie die ik gebruik beheren?

Het is mogelijk om uw applicatie te dwingen om altijd de ODP- en ODAC-versie te gebruiken die u wilt.

  1. Forceer ODP-versie:gebruik de assemblyBinding-truc die is gepost door Robert om het gebruik van uw versie van Oracle.DataAccess te forceren in plaats van de GAC-versie. Bijv.:

    <configuration>
      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="Oracle.DataAccess"  culture="neutral" publicKeyToken="89b483f429c47342"/>
            <codeBase version="4.112.3.0" href="FILE://Oracle.DataAccess.dll"/>
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
    </configuration>
    
  2. Forceer ODAC-versie:de ODP DLL is afhankelijk van een set gedeelde Oracle-componenten (instant client, onbeheerde OCI-dll's). Een manier om deze te krijgen is via het ODAC-pakket. U kunt per app bepalen welk ODAC-pakket u wilt gebruiken. Traditioneel werd dit gedaan via de PATH env-variabele, maar het kan nu worden gedefinieerd via config:

    <configuration>
      <configSections>
        <section name="oracle.dataaccess.client" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      </configSections>
    
      <oracle.dataaccess.client>
        <settings>
          <add name="DllPath" value="C:\somefolder\ODAC_11.2.0.3.0_32bit\bin" />
        </settings>
      </oracle.dataaccess.client>
    </configuration>
    
  3. Als extra voorzorgsmaatregel kun je altijd de GAC'd publisher policy DLL verwijderen, om er zeker van te zijn dat er nooit iets geks aan de hand is.



  1. Hoe installeer ik de Rails MySQL-adapter?

  2. Een UPDATE Pass-Through-query uitvoeren in SQL Server

  3. SQLite werkt, maar door PostgreSQL gemigreerde database veroorzaakt ERROR - Django 3.0

  4. Oracle Connections en VS2012