Для нашего приложения мы используем систему обмена сообщениями, где, используя информацию в сообщении, мы можем создавать различные объекты, используя отражение на лету. Упрощенная версия этого:
if(Message.Control == "ControlA")
Assembly.LoadFrom("ControlsA.dll")
else if (Message.Control == "ControlB")
Aseembly.LoadFrom("ControlsB.dll")
Получив сборку, мы при необходимости вызываем различные методы.
Проблема на данный момент заключается в том, что когда мы используем этот метод для установок Windows 7, мы получаем ошибку «Не удалось загрузить файл или сборку», когда путь, о котором сообщается как обыскиваемый, является каталогом рабочего стола пользователя, в котором было запущено приложение. через короткий путь (C: \ Users \ * user * \ desktop).
Мой вопрос; почему вышеупомянутый метод не ищет в пути приложения для DLL в Windows 7, когда он работает в XP, мы должны делать что-то по-другому?