Я пытаюсь загрузить сборки динамически через Reflection. У меня есть структура папок, как это:ResolveEventArgs.RequestingAssembly is Null
project
\-- BIN
|-- myApp.exe
|-- SOMEEXTENTION1
| |-- someExtention1.dll
| \-- itsDependency1.dll
|
|-- SOMEEXTENTION2
|-- someExtention2.dll
\-- itsDependency2.dll
я могу загрузить someExtention с помощью отражения. Проблема возникает, когда во время исполнения someExtention ищет itsDependency. Точечная сеть выглядит в папке BIN. Он не находит его там. Событие AssemblyResolve Appdomain поднято ...
Я помешиваю это событие. В ResolveEventArgs я получаю имя сборки, которая должна быть загружена. проблема в том, что я не получаю RequestingAssembly. это свойство ResolveEventArgs всегда пустое. Мне нужна запрашивающая сборка, чтобы я мог смотреть прямо в ее собственную папку EXTN. без этого я должен смотреть во все папки EXTN, что в моем случае может быть довольно большим.
RequestingAssembly имеет свойство Location, в соответствии с которым в этой статье msdn содержится путь к физическому файлу. this статья также содержит ситуацию, когда это свойство может быть Ничто. Я не понимаю обсуждаемый здесь Load-Context.
Любая помощь будет заметна ...
Вы правы. LoadFrom() генерирует события, у которых есть свойство RequestingAssembly, тогда как 'Assembly.Load (AssemblyName.GetAssemblyName (путь)) не работает. Я не понимаю, почему, но мне пришлось переключать – ekkis
Эта строка спасла мне много времени «при динамической загрузке сборок имя папки не должно совпадать с именем сборки». Я также заметил, что RequestingAssembly имеет значение null в событии resolver в этом сценарии. Microsoft должна предупредить об этом на страницах msdn для LoadFrom()! – Makolyte