sql >> Base de Datos >  >> RDS >> Oracle

Oracle.Dataaccess está en el GAC. ¿Puedo controlar la versión que uso?

Es posible obligar a su aplicación a usar siempre la versión ODP y ODAC que desee.

  1. Forzar la versión de ODP:use el truco de ensamblado publicado por Robert para forzar el uso de su versión de Oracle.DataAccess en lugar de la versión de GAC. Por ejemplo:

    <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. Forzar la versión de ODAC:la DLL de ODP depende de un conjunto de componentes de Oracle compartidos (cliente instantáneo, dll de OCI no administrados). Una forma de obtenerlos es a través del paquete ODAC. Puede definir (por aplicación) qué paquete ODAC desea utilizar. Tradicionalmente, esto se hacía a través de la variable PATH env, pero ahora se puede definir a través de 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. Como precaución adicional, siempre puede eliminar la DLL de la política del editor de GAC, para asegurarse de que nunca ocurra ningún problema.