Plugins и "BindingFailure was detected"
От: Grammer  
Дата: 31.03.06 15:18
Оценка:
Есть application который имеет плагиновую структуру

1. Основное приложение + Его компоненты лежат в AppDir
2. Plugins лежат в AppDir\Plugins

->1 a) AppDir\app.exe

b) AppDir\components.dll

->2 a) AppDir\Plugins\Plugin1.dll

b) AppDir\Plugins\Plugin2.dll

плагины пишутся на основе то есть имеют reference на components.dll +
могут писаться на основе друг друга... то есть Plugin2.dll имеет ссылку Plugin1.dll

так вот если все лежит в одной папке (и плагины и app.exe и components.dll) то все плагины загружаются просто через Assembly.LoadFile(fileName) номарльно, и я могу получить экпортируемые типы и создавать их экземпляры а вот если они лежат в папках со структурой как я нарисовал выше то:
1. Попытка загрузить все плагины из папки AppDir\Plugins\ получается успешно
2. А вот получить экспортируемые типы заканчивается неудачей...

BindingFailure was detected
Message: The assembly with display name 'FooDll' failed to load in the 'Anonymous' binding context of the AppDomain with ID 1. The cause of the failure was: System.IO.FileNotFoundException: Could not load file or assembly 'FooDll' , Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. Не удается найти указанный файл.
File name: 'FooDll' , Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'


что я делаю не так и в чем разница когда я их положил в разные папки

зы: может это все потому что Plugin2.dll имеет ссылку Plugin1.dll а я пытаюсь загрузить Plugin2 раньше чем Plugin1? Но тогда почему когда они лежат в одной папке то все грузится нормально???
Re: Plugins и "BindingFailure was detected"
От: Grammer  
Дата: 03.04.06 08:59
Оценка:
up =(
или подскажите как правильно загрузить модули которые должны находиться в такой структуре каталогов и с такой зависимостью от других библиотек как я описал в посте выше
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.