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.