Я работаю над приложением, которое загрузит плагины. Модули подключаемых модулей находятся в каталоге, который находится ниже основного каталога моего приложения.Настройка частного пути для загрузки сборников плагинов
выглядит так:
MyAppFolder ----------->ThePluginFolder ----------------Assembly1 ----------------Dependency1
Моя проблема возникает с Dependency1 (это собрание, что ссылки на узел 1). CLR не находит его.
Я сделал некоторое чтение в Fusion, и, похоже, я мог бы исправить это, установив частный путь с currentAppDomain.AppendPrivatePath.
Однако в справке .NET 4.0 они говорят, что этот метод устарел. Они указывают мне на AppDomainSetup, но я не могу использовать это для изменения моего текущего домена приложения.
Кто-нибудь знает, что еще я могу сделать, чтобы загрузить эти зависимости?
Опции Я рассмотрел:
Я мог бы вручную перебрать ссылки Ассамблеи1, и если я найду сборку в папке плагина, я могу вручную загрузить его. (похоже, мой лучший вариант, но я хочу убедиться, что я ничего не пропустил)
Я мог бы связать событие AssemblyResolve моего текущего домена (но это даже выглядит странно - вы возвращаете значение. означает, что это не многоадресной рассылки? Я обработки один аспект плагин (бизнес-правил), что, если другая часть моего приложения хотел плагин в отчетах? Будет ли мне нужен 1 глобальный обработчик событий?
FWIW, вы (или другие будущие посетители) также могут быть заинтересованы в моей попытке решить проблему, изложенную в [этом вопросе и его ответах] (http://stackoverflow.com/questions/10923727/plugin-appdomains-workaround). –
Спасибо O.R. Mapper! – JMarsch