Comment puis-je construire un projet en tout mode CPU lorsqu'ils traitent avec les bibliothèques 3ème partie?

StackOverflow https://stackoverflow.com/questions/4857221

Question

J'ai une bibliothèque tierce partie qui est disponible pour le téléchargement soit dans .DLL 32 bits ou 64 bits. Ma machine de développement est en cours d'exécution 32 bits de Windows 7. Ma machine de production cible est en cours d'exécution 64 bits de Windows Server 2008 R2. Ma solution de projet est en train de construire en tout mode CPU.

Y at-il une façon élégante de traiter ce cas sans avoir à avoir des projets en double (MyProject32 et MyProject64, chaque référence à la version 32 ou 64 bits approprié de la bibliothèque 3ème partie)?

La première solution I est pensé à crochet dans le AppDomain.AssemblyResolve événement et ont mes bibliothèques 3ème partie dans leurs propres 32 et des sous-dossiers 64 bits. Je puis charger l'ensemble approprié de façon dynamique en fonction du mode actuel.

La deuxième solution que je pensais est de construire en mode 32 bits uniquement, et seulement utiliser la bibliothèque 3ème partie 32 bits (ce qui semble être un flic-out pour moi ...).

Ni solution me rend particulièrement propre ... Tout conseil serait utile!

Était-ce utile?

La solution

Si cela est un programme en interne, alors je ne vois pas le problème. Installer la DLL 32 bits sur la machine de développement et installer la DLL 64 bits sur la machine de production. Ne pas installer la mauvaise DLL sur la mauvaise machine. Avec une application, le problème de la mauvaise DLL sur la machine est à peu près équivalente à ne pas avoir la DLL dans la maison du tout.

Si cela est une application qui vous distribuerez, ou vous ne pouvez pas compter sur les machines ayant les DLLs droite au bon endroit, votre première solution semble raisonnable: déterminer quelles DLL est appropriée pour l'exécution en cours environnement et le charger. Ou, si elle ne peut pas être chargé, afficher un message d'erreur indiquant quel est le problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top