Bonjour

J'ai un exe qui définit une interface et qui charge des DLL qui implémente cette interface (plug-in).

Mon exe et son fichier d'interface se trouve dans le repertoire A.

Mes plug-in se trouvent dans le repertoire B.

Cas figure 1:
Si j'utilise Assembly.LoadFrom(Repertoire B) pour charger mes plug-in, j'ai un problème de cast car l'assembly Interface étant chargé 2 fois, ca merde. Je connais ce problème et une solution est de ne pas faire une copie locale du fichier d'interface.
Celà est une solution mais ca me gène un peu.

Cas figure 2:
J'utilise Assembly.LoadFile(Repertoire B) pour charger mes plug-in. Là, tout fonctionne à merveille (en ayant dans le repertoire B les fichiers DLL d'interface) sauf que, lors d'un loadFile(), si un fichier est référencé par mon assembly à charger et que ce fichier n'est pas dans le repertoire A (ce qui peut arriver souvent), l'assembly n'est pas monté. En clair, un LoadFile() ne résout pas les problèmes de "liens" (en dehors des assemblys se trouvant dans le GAC).

Comment puis-je faire alors pour avoir la souplesse du cas de figure 2 (pouvoir inclure dans une distribution d'une DLL l'ensemble des dépendances) et ne pas rencontrer cette exception au chargement ?

Est-ce que la seule solution est d'installé les dépendances de mon plug-in dans le GAC ?

Toutes idées, question sera la bienvenue

Merci d'avance

Nicolas