2009-06-21 4 views
1

В .net можно создать AddIn в новом AppDomain. Создание новых AppDomains не является чем-то новым, и можно использовать класс AppDomainSetup для указания всех параметров запуска (например, где найти app.config) вновь созданного AppDomain. Однако при активации AddInToken с использованием нового AddInProcess (который указывает, что AddIn должен быть создан в совершенно новом процессе), у одного нет прямого доступа к параметрам AppDomainSetup, которые будут использоваться для создания AppDomain в новом Процессе.Управление AppDomainSetup при активации AddInToken в AddInProcess

Есть ли способ сделать это? Мне действительно нужно иметь возможность заставить мои новые AddIns использовать новые параметры app.config и различные другие настройки в AppDomain.

Спасибо за любую помощь здесь ...

ответ

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

    // snip 
    // do stuff 
    // snip 
} 

С помощью этого кода (я понимаю FullTrust плохо, но мое приложение не требуется), я могу указать отдельный app.config (названный так же, как сборка Addin) в каждом каталоге.

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

Это правда. Хотя перегрузка Activate, который вы используете, - это активировать новый AppDomain в текущем процессе. Чтобы создать новый процесс, вы можете вызвать 'var addinInstance = addin.Activate (новый AddInProcess(), AddInSecurityLevel.FullTrust);'. Я знаю, что вопрос старый, но он может быть полезен любому, кто использует System.AddIn. –

 Смежные вопросы

  • Нет связанных вопросов^_^