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