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
Partager