MEF загружает библиотеки DLL, которые имеют необходимые библиотеки в GAC - PullRequest
5 голосов
/ 04 января 2011

Я разработал приложение, которое имеет различные плагины, используя платформу MEF для отложенной загрузки любой реализации интерфейсов плагинов в каталоге приложения - довольно стандартная штука.

Однако с тех пор я разработал плагин, который использует некоторые библиотеки DLL из другого приложения (которое устанавливает их в GAC) - на компьютере с этими установленными приложениями все работает нормально, но на компьютере, который не 't все мое приложение падает.

Я провел некоторое исследование о том, когда среда выполнения ищет библиотеки DLL и, очевидно, делает это для каждого метода, с которым сталкивается.Затем я попытался изменить плагин, чтобы определить, находятся ли необходимые библиотеки DLL внутри GAC, прежде чем вводить метод, который требует их, но это вызвало то же падение.

Затем я закомментировал весь код в классе, кроме простого конструктора и некоторых заглушек интерфейса, чтобы посмотреть, сработает ли это, но это вызвало ту же ошибку.Пытается ли среда выполнения .net немедленно загрузить какие-либо сборки GAC?

Кто-нибудь имел опыт работы с подобной ситуацией?Какие у меня варианты?

Спасибо

Марлон

1 Ответ

6 голосов
/ 04 января 2011

Я ответил на очень похожий вопрос здесь .(Связанный вопрос касается проблем, когда MEF пытается обработать запутанные сборки, но мы используем тот же метод, чтобы игнорировать плагины, которые зависят от отсутствующих сборок в GAC, как в вашем случае использования.)

...