Можно ли загрузить разные версии одной и той же сборки, используя MEF? - PullRequest
1 голос
/ 11 февраля 2011

У меня есть ситуация, когда одна и та же сборка (скажем, Common.dll) включена в 2 разных модуля (Xaps).Под той же сборкой я подразумеваю сборку, имеющую те же пространства имен и классы, но разные реализации классов / операций.

Теперь оба этих модуля будут размещены в одном приложении оболочки, и их соответствующие файлы xaps будут загружены через каталог загрузки.Оба xaps будут содержать внутри себя Common.dll, но с разными реализациями.

Я пытался использовать разные CompositionContainers, по одному для модулей, надеясь, что отдельные контейнеры изолируют модули и их зависимости.Не сработало Удивительно, но использовало первый загруженный экземпляр Common.dll.Это отличается от обычно той же самой сборки, перезаписывающей первую и использующей последнюю загруженную сборку, что дает мне проблеск надежды.

Композиция-контейнер имеет возможность ReleaseExports.Поможет ли это мне?

В принципе, я думаю, что если мы последовательно выполняем импорт и затем освобождаем, каждый модуль должен получить экземпляр правильных операций Common.dll.

Спасибо!

1 Ответ

1 голос
/ 11 февраля 2011

Вы пытались дать своим сборкам строгое имя ? Это должно гарантировать, что зависимости разрешаются в те же сборки, что и те, с которыми вы скомпилировали.

...