[Modifier]
Il est pas nécessaire d'utiliser la réflexion. Vous pouvez ajouter une référence à votre programme directement dans le chargeur et le lancer. Avez-un billet de blog avec le code à ce sujet au Tech and Me. Vous pouvez inclure les deux versions dans votre déploiement, mais les nommer différemment. Ensuite, demandez à l'application loader de vérifier si vous êtes sur un système 32 bits ou 64 bits, copiez la bonne DLL (par exemple thirdparty64.dll -> thirdparty.dll) à laquelle votre vrai programme est lié, puis invoquez votre programme depuis le chargeur avec par exemple Assembly.Load
et utilisez la réflexion pour démarrer votre méthode principale.
Une méthode plus simple consiste à compiler votre application pour l'exécuter en tant que x86, en s'assurant qu'elle fonctionnera toujours en mode 32 bits. Si vous ne comptez pas sur une application spécifique installée sur la machine dans les versions 32/64 bits, cela pourrait être le meilleur choix.
Est-ce que les deux versions de dll différentes ont le même nom de fichier? – codeConcussion
@whatknott: Oui, les deux DLL ont le même nom, même le numéro de version. La seule différence est la taille. – JPReddy