Есть 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? Но тогда почему когда они лежат в одной папке то все грузится нормально???