У меня есть приложение, которое загружает определенные (расширяемые) функции через Mef. Поскольку эти модули (возможно) используют сторонние элементы управления (Telerik), я хочу свести к минимуму время загрузки пользователя (при открытии форм с использованием вышеупомянутых элементов управления), я хочу предварительно загрузить сборки этих ссылок модулей Mef.Добавить путь сборки Mef к пути .Load AppDomain.
Что я делаю, это использовать метод Assembly.GetReferencedAssemblies (..), чтобы получить имена ссылочных ассемблеров на модуль Mef и попытаться выполнить Assembly.Load (..) их.
Поскольку модули расположены «где-то» в файловой системе (как правило, отличаются от пути ExecutingAssembly), загрузка не выполняется для ссылок на эти модули Mef, которые не находятся в Gac.
Есть ли способ изменить мой путь загрузки сборки AppDomain.CurrentDomain? Я знаю событие AppDomain.AssemblyLoad, но использование этого несколько громоздко, так как каждый модуль может находиться в разных каталогах.
Thanks Matthew. Я попробовал AppDomain.AppendPrivatePath, но это не сработало и интересно после вызова этого метода, свойство .PrivatePath AppDomain было/остается пустым и загрузка по-прежнему не выполняется. Я также столкнулся с частью в app.config, но проблема в том, что путь (ы) «динамический». Я интересуюсь тем, как MEF справляется с этим, потому что, если я позволяю .Net делать свою нормальную, ленивую загрузку необходимых сборочных ссылок, она отлично работает. –