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

Cómo instalar ODP.NET 2.111 y ODP.NET 4.112 en la misma máquina en paralelo mientras ambos apuntan al mismo servidor de base de datos

La respuesta corta:

Nota:Traté de instalar el nuevo ODP.NET sobre el cliente anterior y pude conectarme a la base de datos usando la siguiente cadena de conexión...

Esto indica que su nueva instalación no tiene tnsnames.ora y sqlnet.ora en /Network/Admin. Si está de acuerdo con que el antiguo cliente use la nueva instalación de ODP.net, puede copiarlos de la instalación anterior o puede especificar una ubicación global para todas las instancias con la variable de entorno TNS_ADMIN, es decir, TNS_ADMIN=C:\MyOracleFilesDir

La respuesta larga:

Cuando instaló el nuevo cliente, lo más probable es que también haya instalado archivos de políticas de publicación en la GAC ​​que redirigen las referencias al antiguo Oracle.DataAccess.dll a la nueva versión durante el proceso de resolución del ensamblado. Oracle.DataAccess luego ubica al cliente a través de un parámetro (DllPath) en el registro. Puede anular esta ubicación configurando dllPath en su archivo .config:

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

Esto es generalmente lo que hago, pero a medida que entiendo esto más, me doy cuenta de que estoy forzando un dll más nuevo contra un cliente anterior. Si su objetivo es dejar intacto el antiguo cliente, una mejor opción puede ser eliminar las políticas del editor del GAC (no creo que estén instaladas con la instalación completa de ODAC, solo ODP.net):

Si necesita reinstalarlos, generalmente se encuentran en oraclepath\odp.net\PublisherPolicy.

Otra, y quizás una mejor opción a largo plazo, es configurar los clientes antiguos para que ignoren la política del editor:http://msdn.microsoft.com/en-us/library/cf9025zt%28v=vs.80%29.aspx

Finalmente, estoy bastante seguro de que los componentes .net para los marcos 2.0 vs. 4.0 son opciones de instalación separadas durante la instalación de ODP.net. Creo que podría evitar este problema simplemente no instalando los componentes 2.0. En esa nota, podría hacer un trabajo similar desarrollando su nuevo proyecto contra el odp.net de 64 bits. Al igual que v2.0 y v4.0, 32 bits y 64 bits tampoco se conocen entre sí.