Esto es puramente un problema de implementación, nunca debería tener que mantener diferentes proyectos. Sin embargo, es incómodo, y abuchea a Oracle por no encargarse de esto ellos mismos. Otra consideración es que este ensamblaje realmente debe generarse en la máquina de destino. Algunas opciones
- Cree dos instaladores, uno para x64 y otro para x86. El cliente elige el correcto, según el sistema operativo que utiliza. Bastante simple, simplemente copie el archivo correcto.
- Implemente ambos ensamblajes en el GAC. Ahora es automático, .NET elige el correcto en cualquier tipo de máquina. Las grandes empresas casi siempre deberían usar el GAC para poder implementar actualizaciones de seguridad, no estoy seguro de por qué Oracle no hace esto.
- Implemente los ensamblajes en un subdirectorio x86 y x64 del directorio de instalación. Deberá escribir un controlador de eventos AppDomain.AssemblyResolve que, según el valor de IntPtr.Size, elija el directorio correcto.
- Cambie la plataforma de destino de su proyecto EXE a x86. Dado que su código necesita funcionar tanto en una máquina de 32 bits como en una máquina de 64 bits, no hay/no debería haber una razón para construir para AnyCPU.