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

Tentando não precisar de duas soluções separadas para o programa x86 e x64


Este é puramente um problema de implantação, você nunca deve ter que manter projetos diferentes. É estranho, porém, e vaiar a Oracle por não cuidar disso por conta própria. Outra consideração é que esse assembly realmente deve ser gerado na máquina de destino. Algumas opções
  • Crie dois instaladores, um para x64 e outro para x86. O cliente escolhe o caminho certo, com base no sistema operacional que usa. Bastante simples, basta copiar o arquivo certo.
  • Implante os dois assemblies no GAC. Agora é automático, .NET escolhe o caminho certo em qualquer tipo de máquina. As grandes empresas quase sempre devem usar o GAC para que possam implantar atualizações de segurança, não sei por que a Oracle não faz isso.
  • Implante os assemblies em um subdiretório x86 e x64 do diretório de instalação. Você precisará escrever um manipulador de eventos AppDomain.AssemblyResolve que, com base no valor de IntPtr.Size, escolha o diretório correto.
  • Altere a plataforma de destino em seu projeto EXE para x86. Como seu código precisa funcionar em uma máquina de 32 bits e em uma máquina de 64 bits, não há/deveria haver um motivo para criar para AnyCPU.