LoadFrom и контекст

Я загружаю через Assembly.LoadFrom сборку (A), которая хранится вне базового пути приложения; загружаемая мной сборка ссылается на другую сборку .net (B) в том же каталоге.

Когда я пытаюсь использовать некоторые методы сборки A, журналы Fusion показывают, что система пытается загрузить B.dll из базового каталога приложения, а не из родительского каталога A.dll.

Я добавил прослушиватель к AppDomain.CurrentDomain.AssemblyResolve, который вызывается отправителем AppDomain с сообщением «Нет политик контекста», а для свойства ResolveEventArgs.RequestingAssembly установлено значение null.

Разве LoadFrom не должно разрешать поиск зависимостей сборки в ее родительском каталоге?


person Coffee on Mars    schedule 02.02.2012    source источник
comment
Нет, это так не работает (к сожалению). У меня есть аналогичная проблема, когда перехват стандартного / собственного загрузчика был бы полезен.   -  person leppie    schedule 02.02.2012


Ответы (2)


Да, я думаю, что должен, но леппи прав, это не так. Вот подробная статья MSDN о последовательности проверки сборки. Несколько раз у меня была точно такая же проблема, и единственным способом было использование события AssemblyResolve.

person EverPresent    schedule 05.02.2012

Ну вообще-то должно! И это так. Видеть:

Пока CLR все еще пытается разрешить зависимости сборки (A) с помощью GAC и каталога appbase, она также будет искать в папке (A), из которой была загружена.

person Eugene Strizhok    schedule 19.01.2019