Referenciar Oracle.DataAccess.dll 64Bits no projeto .Net

Feras,

fiz um publish de uma aplicação .net em minha maquina local que esta funcionando numa boa,

porém quando publiquei e joguei essa aplicação no servidor recebi o erro abaixo, pesquisando percebi que em minha maquina local a aplicação executa em um ambiente 32bits,

e no servidor e 64 como eu altero a referência no projeto em minha maquina local para publicar a aplicação apontando para usar a referencia do Oracle.DataAccess.dll 64Bits ?

Could not load file or assembly 'Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. An attempt was made to load a program with an incorrect format. 

[quote=robsonsan]Feras,

fiz um publish de uma aplicação .net em minha maquina local que esta funcionando numa boa,

porém quando publiquei e joguei essa aplicação no servidor recebi o erro abaixo, pesquisando percebi que em minha maquina local a aplicação executa em um ambiente 32bits,

e no servidor e 64 como eu altero a referência no projeto em minha maquina local para publicar a aplicação apontando para usar a referencia do Oracle.DataAccess.dll 64Bits ?

[code]
Could not load file or assembly ‘Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342’ or one of its dependencies. An attempt was made to load a program with an incorrect format.

[/code][/quote]
Opa, robsonsan, beleza?
Estou migrando meu servidor de 32 para 64 bits, e tive que fazer essas alterações nos meus projetos.
O que você deve fazer:

1.: Vá na sua pasta de instalação do Oracle, procure pela pasta do ODP.NET, pela pasta bin e pela pasta 4. Lá dentro, você vai achar a dll Oracle.DataAcess que você necessita.
2.: Agora é só referenciar no seu projeto e fazer uso dela.

Nicolas eu fiz isso mas quando eu faço o build no projeto da esse erro

Error	1	Não foi possível carregar arquivo ou assembly 'Oracle.DataAccess' ou uma de suas dependências. Não é possível carregar este assembly, pois ele foi compilado em um tempo de execução mais recente que o carregado.		

E dentro da pasta bin tem 2 pastas umas 2.x e a 4 por default a aplicação esta apontando para a pasta 2.x quando tento mudar para a pasta 4 a aplicação fica com erros quando eu faço o build, quando eu altero para a pasta 2.x o build da certo

[quote=robsonsan]Nicolas eu fiz isso mas quando eu faço o build no projeto da esse erro

Error	1	Não foi possível carregar arquivo ou assembly 'Oracle.DataAccess' ou uma de suas dependências. Não é possível carregar este assembly, pois ele foi compilado em um tempo de execução mais recente que o carregado.		

E dentro da pasta bin tem 2 pastas umas 2.x e a 4 por default a aplicação esta apontando para a pasta 2.x quando tento mudar para a pasta 4 a aplicação fica com erros quando eu faço o build, quando eu altero para a pasta 2.x o build da certo[/quote]
Saca só:

Eu crio, em todos os meus projetos, uma pasta LIB, onde guardo todas as .dlls usadas por ele. Então não tenho problema com mudança de instalação, local de arquivo, essas coisas, pois elas sempre estarão na pasta LIB, independente do caminho físico do projeto. Faz isso, pega a .dll da pasta 4 e copia para uma pasta LIB sua. Referencia a .dll que estiver lá no seu projeto, e testa pra gente.

Fiz o teste mas da o mesmo erro

Remove todas as referências, dá um Clean no projeto, adiciona só essa e dá um Rebuild, para só ficar essa referência no seu projeto.

Nicolas

fiz um teste ao invés de usar o using Oracle.DataAccess.Client; estou usando o using System.Data.OracleClient; e joguei minha aplicação no servidor

ai me gerou esse erro abaixo, como posso resolver isso, acho que tem uma forma que altero o Visual Studio para copilar para tanto quanto 32 Bits tanto para 64 Bits

não e isso ?

Attempt to load Oracle client libraries threw BadImageFormatException.  This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed. 

[quote=robsonsan]Nicolas

fiz um teste ao invés de usar o using Oracle.DataAccess.Client; estou usando o using System.Data.OracleClient; e joguei minha aplicação no servidor

ai me gerou esse erro abaixo, como posso resolver isso, acho que tem uma forma que altero o Visual Studio para copilar para tanto quanto 32 Bits tanto para 64 Bits

não e isso ?

Attempt to load Oracle client libraries threw BadImageFormatException. This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed. [/quote]
Esqueça o uso da .dll nativa do .NET. Ela é feita para 32bits, e por isso você não vai conseguir. Eu usava ela mesma, e tive que fazer essa conversão para a Oracle.DataAccess. Você obrigatoriamente vai ter que usá-la. Mas eu não tô entendendo o que tá acontecendo contigo. Eu troquei o driver das minhas aplicações, referenciei o Oracle.DataAccess, alterei a string de conexão nos projetos rodando com ADO.NET, não mexi nos projetos rodando com NHibernate, e funcionou perfeitamente. Tô curioso do porquê não estar funcionando aí rs

Então não posso usar o using System.Data.OracleClient;

e tenho que usar o using Oracle.DataAccess.Client

e isso mesmo ?

[quote=robsonsan]Então não posso usar o using System.Data.OracleClient;

e tenho que usar o using Oracle.DataAccess.Client

e isso mesmo ?[/quote]
Exato.

Nicolas,

a aplicação na minha maquina funciona normalmente ai fiz o seguinte teste:

Exclui a referencia da dll Oracle.DataAccess.dll no VS e publiquei a aplicação,

dentro da pasta bin eu tenho a ddl Oracle.DataAccess.dll,

fiz um teste pegando a dll que esta no caminho da minha maquina local"[home]product\11.2.0\client_1\odp.net\bin[b]2.x[/b]" e coloquei no projeto publicado na pasta bin do server… E me gerou o erro The provider is not compatible with the version of Oracle client

Quando eu coloco a dll do caminho minha maquina local “[home]product\11.2.0\client_1\odp.net\bin\4” na pasta bin do projeto publicado no server da o erro

Could not load file or assembly 'Oracle.DataAccess' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded. 

tem alguma outra sugestão ?

Caros,

Estou com o mesmo problema. Conseguiram uma solução???

Ressucitou o tópico, Loas! hehe
Já tentou todos os procedimentos acima?

Sim. Já tentei.

Rodando no VS roda perfeitamente (VS 2010 + Telerik + Oracle.DataAccess.

A mensagem, quando tento um serviço (http://localhost/Painel/ServiceVendasMes.svc) é a seguinte:

“Não foi possível carregar arquivo ou assembly ‘Oracle.DataAccess’ ou uma de suas dependências. Foi feita uma tentativa de se carregar um programa com um formato incorreto.”

Alguma dica?