Ошибка загрузки MEF из-за несоответствия SDK - PullRequest
1 голос
/ 21 февраля 2020

У меня есть небольшая хитрая проблема, которую я пытаюсь решить. У меня есть внутреннее (для моей организации) MEF-приложение, которое загружается в дополнительные пакеты для обработки разных запросов. Моя организация время от времени выпускает SDK. Чтобы помочь управлять постоянными обновлениями, у меня есть собственный закрытый пакет NuGet с библиотеками SDK, которые я включаю в свои обработчики. Я просто ссылаюсь на это. Проблема состоит в том, что среды, в которых мы развертываем, не всегда имеют самые последние двоичные файлы, поэтому мои обработчики не загружаются, потому что он ищет конкретную c версию двоичного файла (т.е. «Не удалось загрузить в MyBinary.dll, потому что MefApp.1.1»). .3 не удалось найти ").

Для ясности моя проблема выглядит следующим образом:

Пакет SDK:

  • Содержит двоичные файлы с интерфейсами, которые мне нужны для приложения MEF

Проект обработчика:

  • Импортирует пакет SDK
  • Реализует ожидаемые интерфейсы и т. Д. c.
  • Делает вещи

MEF App:

  • Попытки загрузить «Проект-обработчик»
    • Сбой из-за того, что файлы SDK отличаются от ожидаемых

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

Наконец, я понимаю, что, если есть серьезные критические изменения, это БУДЕТ терпеть неудачу, и нет никакого способа обойти это. Это чисто для незначительных обновлений, в которых нет критических изменений.

Спасибо,

...