2009-06-21 2 views
1

Dans .net, il est possible de créer un AddIn dans un nouveau AppDomain. La création de nouveaux AppDomains n'est pas une nouveauté et vous pouvez utiliser une classe AppDomainSetup pour spécifier tous les paramètres de démarrage (par exemple, où trouver l'app.config) du AppDomain nouvellement créé. Toutefois, lors de l'activation d'un AddInToken à l'aide d'un nouvel AddInProcess (qui spécifie que l'AddIn doit être instancié dans un processus entièrement nouveau), il n'a pas accès direct aux paramètres AppDomainSetup qui seront utilisés pour créer l'AppDomain dans le nouveau Processus.Contrôle AppDomainSetup lors de l'activation de AddInToken dans AddInProcess

Existe-t-il un moyen de le faire? J'ai vraiment besoin de pouvoir forcer mes nouveaux AddIns à utiliser les nouveaux paramètres app.config, et diverses autres personnalisations sur AppDomain.

Merci pour toute aide ici ...

Répondre

2
var addins = AddInStore.FindAddIns(typeof(AddInHostView), addInRoot); 
foreach (var addin in addins) 
{ 
    var addinInstance = addin.Activate<AddInHostView>(AddInSecurityLevel.FullTrust); 

    // snip 
    // do stuff 
    // snip 
} 

Avec ce code (je comprends FullTrust est mauvais, mais pour ma demande est nécessaire) Je suis en mesure de spécifier un app.config séparé (nommé le identique à l'assembly Addin) dans chaque répertoire.

\AddIns 
\AddIn1 
    AddIn1.dll 
    AddIn1.dll.config 
+0

Ceci est vrai. Bien que la surcharge d'Activate que vous utilisez soit activée dans un nouvel AppDomain dans le processus en cours. Pour créer un nouveau processus, vous pouvez appeler 'var addInInstance = addin.Activate (new AddInProcess(), AddInSecurityLevel.FullTrust);'. Je sais que la question est ancienne mais elle peut être utile à quiconque utilise System.AddIn. –

Questions connexes