вот мой сценарий:
У меня есть три проекта: две библиотеки DLL и одно консольное приложение, назовем их foo.dll, bar.dll и console.exe. Console.exe загружает foo.dll с использованием Assembly.LoadFile (@ "c: \ foo.dll"). Проект Foo.dll имеет ссылку на bar.dll и использует класс. Console.exe нормально загружает foo.dll, проблема возникает, когда foo.dll пытается использовать класс bar.dll. Я получаю исключение "не удалось загрузить сборку:" bar.dll ", бла-бла.
Некоторые баллы:
- Все проекты с сильным именем
- предпочел бы не использовать GAC
- Bar.dll находится в c: \ bar.dll
Таким образом, все находится в одном и том же локальном каталоге, ссылки на правильные dll (через свойства проекта, и я использовал Reflector, чтобы убедиться, что версии сборки верны). Если я установлю bar.dll в GAC, все будет работать как положено.
Я думаю, что это как-то связано с вызовом Assembly.LoadFile и переходом ко второй DLL, но я не уверен.
Спасибо за ваше время и вклад.