позвольте мне попытаться объяснить мою проблему. В настоящее время я пытаюсь разработать небольшой «плагин-фреймворк», написанный на .Net (в основном для экспериментов). Таким образом, идея состоит в том, чтобы иметь основное приложение, в которое можно добавить «плагины», развернув dll в определенной папке «плагины» основного приложения.
Все работает нормально, плагины созданы должным образом, однако сейчас я столкнулся с проблемой.
Я развернул сейчас плагин «X», который использует дополнительные сторонние плагины, и поэтому у меня возникла проблема, заключающаяся в том, что эти дополнительные сторонние плагины, требуемые для «X», не найдены во время выполнения. Поэтому моя идея состоит в том, чтобы добавить дополнительный каталог «зависимости», где я также разверну все необходимые плагины.
Итак, мой первый вопрос:
Как я могу загрузить сборки в домен приложения (учитывая, что я знаю путь к ним) s.t. они могут быть использованы моим приложением?
Я пытался приблизиться к этому, делая что-то вроде:
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
//find the path to the assembly and then load and return it by
//return Assembly.Load("pathToDependencies/failedAssembly.dll");
}
Проблема заключается в том, что этот обработчик событий теперь активируется с помощью «Presentation.Zune.dll» в переменной args (я использую приложение WPF). Кажется, что эта сборка не удалось загрузить, но фактическая проблема является другой DLL.
Может кто-нибудь предложить мне лучший способ решить мою проблему? Я надеюсь, что смог объяснить ситуацию достаточно, в противном случае просто попросите дальнейших разъяснений.
Спасибо,
Juri