Je travaille sur une application qui chargera des plug-ins. Les assemblys de plug-in résident dans un répertoire situé sous le répertoire principal de mon application.Configurer un chemin privé pour charger les assemblys de plugins
ressemble à ceci:
MyAppFolder ----------->ThePluginFolder ----------------Assembly1 ----------------Dependency1
Mon problème se produit avec Dependency1 (ce qui est un assemblage de références Assemblée 1). Le CLR ne parvient pas à le trouver.
J'ai fait quelques lectures sur Fusion, et il me semble que je pourrais corriger cela en définissant un chemin privé avec currentAppDomain.AppendPrivatePath.
Cependant, dans l'aide .NET 4.0, ils disent que cette méthode est obsolète. Ils me pointent vers AppDomainSetup, mais je ne peux pas l'utiliser pour modifier mon domaine d'application actuel.
Est-ce que quelqu'un sait ce que je peux faire d'autre pour charger ces dépendances?
Options J'ai considéré:
Je pourrais manuellement à travers les boucles références de Assembly1, et si je trouve un ensemble dans le dossier de plug-in, je pouvais charger manuellement. (semble être ma meilleure option, mais je veux m'assurer que je ne manque rien)
Je pourrais accrocher l'événement AssemblyResolve de mon domaine actuel (mais cela semble même bizarre - vous renvoyez une valeur. implique qu'il est multidiffusée pas? Je manipuler un aspect de plug-in (une règle d'entreprise), si une autre partie de mon application a voulu plug-in rapports? est-ce que je dois 1 gestionnaire d'événements global?
FWIW, vous (ou d'autres futurs visiteurs) pourrait également être intéressé par ma tentative de résoudre le problème décrit dans [cette question et ses réponses] (http://stackoverflow.com/questions/10923727/plugin-appdomains-workaround). –
Merci O.R. Mappeur! – JMarsch