Questo è puramente un problema di distribuzione, non dovresti mai mantenere progetti diversi. È imbarazzante, però, e fischiate Oracle per non essersi occupati di questo da soli. Un'altra considerazione è che questo assembly dovrebbe davvero essere creato sulla macchina di destinazione. Alcune opzioni
- Crea due programmi di installazione, uno per x64 e uno per x86. Il cliente sceglie quello giusto, in base al sistema operativo che utilizza. Abbastanza semplice, basta copiare il file giusto.
- Distribuire entrambi gli assembly nella GAC. Ora è automatico, .NET seleziona quello giusto su entrambi i tipi di macchina. Le grandi aziende dovrebbero quasi sempre utilizzare il GAC in modo da poter distribuire aggiornamenti di sicurezza, non sono sicuro del motivo per cui Oracle non lo fa.
- Distribuire gli assembly in una sottodirectory x86 e x64 della directory di installazione. Dovrai scrivere un gestore di eventi AppDomain.AssemblyResolve che, in base al valore di IntPtr.Size, scelga la directory giusta.
- Cambia la piattaforma di destinazione sul tuo progetto EXE in x86. Dato che il tuo codice deve funzionare su una macchina a 32 bit e su una macchina a 64 bit, non c'è/non dovrebbe esserci un motivo per costruire per AnyCPU.