У меня есть сборка A
, эта сборка динамически загружает сборки B
, C
и E
. И он будет загружать больше в будущем.
Проблема первая:B
ссылается на F
и G
, когда я пытаюсь выполнить методы в экземпляре типа, объявленного в B
, из A
, я получаю исключение, говорящее мне, что F
не найдено , конечно.
Вопросы:
- Как я могу ссылаться на
F
иG
при динамической загрузке сборкиB
, предполагая, чтоF
иG
находятся в той же папке, что иB
? - Как я могу ссылаться на
F
иG
при динамической загрузке сборкиB
, предполагая, чтоF
иG
находятся в другой папке?
Проблема вторая:
Это в значительной степени связано с тем, что, пытаясь быстро протестировать некоторые функции, я скопировал упомянутые сборки из папки двоичных файлов B
в папку A
, что привело к следующему исключению:
Не удалось загрузить файл или сборку «log4net, версия = 1.2.10.0, культура = нейтральная, PublicKeyToken = 1b44e1d426115821» или одну из ее зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)
Я предполагаю, что это происходит из-за того, что я использую версию log4net
, отличную от одной из зависимостей B
.
Вопрос:
Какая мера могу ли я предпринять, чтобы избежать таких проблем с версиями?
Будет ли исправление проблемы 1 решить эту проблему? Если нет, то почему?
Должен ли я использовать для этого Autofac?
Поможет ли это мне? Как?
Имейте в виду, что идея сборки A
состоит в том, чтобы брать «плагины», и в таком порядке декларативное указание на сборки или их зависимости не является вариантом.