Това е чисто проблем с внедряването, никога не трябва да поддържате различни проекти. Това обаче е неудобно и се освиркват на Oracle, че не са се погрижили сами за това. Друго съображение е, че това сглобяване наистина трябва да бъде ngen-ed на целевата машина. Някои опции
- Създайте два инсталатора, един за x64 и един за x86. Клиентът избира правилния въз основа на операционната система, която използва. Достатъчно просто, просто копирате правилния файл.
- Разположете и двата модула в GAC. Сега това е автоматично, .NET избира правилния за всеки тип машина. Големите компании трябва почти винаги да използват GAC, за да могат да внедряват актуализации за защита, не знам защо Oracle не прави това.
- Разположете модулите в поддиректория x86 и x64 на инсталационната директория. Ще трябва да напишете манипулатор на събития AppDomain.AssemblyResolve, който въз основа на стойността на IntPtr.Size избира правилната директория.
- Променете целевата платформа на вашия EXE проект на x86. Като се има предвид, че вашият код трябва да работи на 32-битова машина, както и на 64-битова машина, няма/не трябва да има причина да се изгражда за AnyCPU.