Dit is puur een implementatieprobleem, u hoeft nooit verschillende projecten te onderhouden. Het is echter een lastige, en boe voor Oracle omdat ze dit niet zelf regelen. Een andere overweging is dat deze assembly echt op de doelmachine moet worden gemaakt. Enkele opties
- Maak twee installatieprogramma's, één voor x64 en één voor x86. De klant kiest de juiste, op basis van het besturingssysteem dat ze gebruikt. Simpel genoeg, je kopieert gewoon het juiste bestand.
- Bedien beide assemblages in de GAC. Nu is het automatisch, .NET kiest de juiste voor elk type machine. Grote bedrijven zouden bijna altijd de GAC moeten gebruiken zodat ze beveiligingsupdates kunnen implementeren, ze weten niet zeker waarom Oracle dit niet doet.
- Implementeer de assembly's in een x86- en x64-subdirectory van de installatiedirectory. U moet een AppDomain.AssemblyResolve-gebeurtenishandler schrijven die, op basis van de waarde van IntPtr.Size, de juiste map kiest.
- Verander het doelplatform op uw EXE-project in x86. Aangezien uw code zowel op een 32-bits machine als op een 64-bits machine moet werken, is/mag er geen reden zijn om voor AnyCPU te bouwen.