Обзор ситуации.
У нас есть несколько проектов, используемых в многофункциональной системе.
- objectAccessLibrary.dll (несколько версий)
- dispatcherHandler.dll (v.1.0) (зависимость: независимая от версии часть objectAccessLibrary.dll )
- Обработчики событий: handler_01.dll , handler_02.dll , handler_03.dll .Зависимости: dispatcherHandler.dll (v.1.0), objectAccessLibrary.dll (конкретная версия для каждого handler_xx.dll )
- DispatcherService (зависимость: конкретная версия objectAccessLibrary.dll ).Динамически загружает обработчики и использует их функциональность для отправки событий.
Проблема
objectAccessLibrary.dll разрабатывается вместе сОсновная система.Выставлено несколько интерфейсов / объектов, которые можно менять от версии к версии.Поэтому dispatcherHandler.dll и DispatcherService следует перекомпилировать и повторно проверять со старыми обработчиками каждый раз, когда нам нужно добавить новый обработчик, поскольку он ДОЛЖЕН использовать новейшую версию objectAccessLibrary.dll .Но с другой стороны DispatcherService ДОЛЖЕН работать, пока hanlder_xx.dll динамически загружаются.
Текущая версия работает нормально, если новые обработчики не используют новые функции objectAccessLibrary.dll .В общем случае нам нужно загрузить разные версии objectAccessLibrary.dll и разделить некоторые объекты между ними и dispatcherHandler.dll .Как это сделать?