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

Não foi possível carregar o arquivo ou assembly para Oracle.DataAccess no .NET


Vou lhe dar as respostas do que acabei de passar no Windows Server 2008 R2, que é um sistema operacional de 64 bits. O conjunto de aplicativos de bibliotecas que recebi foi desenvolvido usando o .net 3.5 x86 com as bibliotecas DLL mais antigas e fiquei preso porque instalei os clientes x64 mais recentes da Oracle.

O que encontrei foi o seguinte:Instale o cliente x64 mais recente do Oracle para Windows Server 2008. Acredito que este seja o cliente 2.7.0. Ao selecionar a instalação, certifique-se de personalizar e selecionar as bibliotecas .NET. Configure seus arquivos tnsnames e teste seu tnsping em relação à sua fonte de dados.

Em seguida, se você estiver executando um aplicativo de 32 bits, instale a mesma versão do cliente para 32 bits. Além disso, siga a mesma rotina de instalação e selecione a mesma casa.

Quando terminar, você descobrirá que tem um único aplicativo/produto com dois diretórios de clientes (Client1 e Client2).

Se você navegar até o diretório windows/assemblies, verá que tem uma referência ao Oracle.DataAccess.dll (x2) com um para x86 e outro para AMD64.

Agora, dependendo se você tem desenvolvedores ou está desenvolvendo na máquina, você pode estar bem aqui, no entanto, se eles estiverem usando drivers mais antigos, você precisará executar uma última etapa.

Navegue até o diretório app\name\product\version\client_1\odp.net\publisher policy\2.x. Estão incluídos aqui dois arquivos de política. use gacutil /i para instalar o Policy.2.111.Oracle.DataAccess.dll no GAC. Isso redirecionará as chamadas ODP do Oracle legado para as versões mais recentes. Então, se alguém desenvolveu com o cliente 10g, agora funcionará com o cliente 11.

FYI -- Alguns podem estar instalando o ODP.NET mais recente com o 2.111.7.20. O próprio cliente oracle principal vem com 2.111.7.0.. Não tive nenhum sucesso com o 7.20 mas não tenho problemas com o cliente 7.0.