Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como instalar o ODP.NET 2.111 e ODP.NET 4.112 na mesma máquina lado a lado enquanto ambos apontam para o mesmo servidor de banco de dados


A resposta curta:

Nota:Tentei instalar o novo ODP.NET no cliente anterior e consegui me conectar ao banco de dados usando a seguinte string de conexão...

Isso indica que sua nova instalação não possui tnsnames.ora e sqlnet.ora em /Network/Admin. Se você estiver de acordo com o cliente antigo usando a nova instalação do ODP.net, poderá copiá-los da instalação antiga ou especificar um local global para todas as instâncias com a variável de ambiente TNS_ADMIN, ou seja, TNS_ADMIN=C:\MyOracleFilesDir

A resposta longa:

Quando você instalou o novo cliente, ele provavelmente também instalou arquivos de diretiva do editor no GAC que redirecionam as referências ao antigo Oracle.DataAccess.dll para a nova versão durante o processo de resolução do assembly. O Oracle.DataAccess localiza o cliente por meio de um parâmetro (DllPath) no registro. Você pode substituir esse local definindo o dllPath em seu arquivo .config:
<configuration>
  <oracle.dataaccess.client>
    <add key="DllPath"            value="C:\yourotherpath"/>
  </oracle.dataaccess.client>
</configuration>

Isso geralmente é o que eu faço, mas à medida que entendo isso mais, percebo que estou forçando uma dll mais recente contra um cliente mais antigo. Se o seu objetivo é deixar o cliente antigo intocado, uma opção melhor pode ser excluir as políticas do editor do GAC (acho que elas nem estão instaladas com a instalação completa do ODAC, apenas ODP.net):



Se você precisar reinstalá-los, eles geralmente são encontrados em oraclepath\odp.net\PublisherPolicy.

Outra, e talvez uma melhor opção de longo prazo, é configurar os clientes antigos para ignorar a política do editor:http://msdn.microsoft.com/en-us/library/cf9025zt%28v=vs.80%29.aspx

Finalmente, tenho certeza de que os componentes .net para os frameworks 2.0 vs. 4.0 são opções de instalação separadas durante a instalação do ODP.net. Acho que você pode evitar esse problema simplesmente não instalando os componentes 2.0. Nessa nota, você pode fazer um trabalho semelhante desenvolvendo seu novo projeto no odp.net de 64 bits. Como v2.0 e v4.0, 32 bits e 64 bits também não têm nenhuma consciência um do outro.