2010-10-15 7 views
3

J'ai une application qui charge deux DLL d'assemblage. La première DLL est une DLL commune et la deuxième DLL contient une référence à une autre version de la première DLL. Tous les assemblages sont non signés.. Mêmes types dans deux assemblages différents

App.exe -> dll1_v1.dll, dll2.dll
dll2.dll -> dll1_v2.dll

Les deux dll1_v1.dll et dll1_v2.dll ont les mêmes types, mais différentes implémentations. Si j'ai à la fois dll1_v1.dll et dll1_v2.dll dans le chemin de la base de code de l'exe, alors les deux sont chargés et toutes les instances d'objets dans app.exe pointent vers dll1_v1.dll et dans dll2 pointent vers dll1_v2.dll.

Si je dois pointer dll1_v2 vers dll1_v1, est-il correct de supprimer dll1_v2.dll de la base de code et ajouter gestionnaire d'événements AssemblyResolve afin que je puisse retourner l'Assemblée pour dll1_v1.dll à la place de dll1_v1.dll?

+0

La suppression de la référence à DLL_v1 dans votre application évite-t-elle simplement de contourner le problème? Je ne me souviens pas si vous perdez l'accès à ces types, car ils dépendent d'un assembly indirectement référencé. – Tejs

Répondre

Questions connexes