Замена места, откуда среда выполнения смотрит сборки на лету - PullRequest
3 голосов
/ 27 июня 2011

У нас есть приложение, в котором есть несколько "утилит" (несколько простых программ).

Эти утилиты полагаются на несколько общих библиотек DLL, которые также использует наше приложение, поэтому мы хотели бы распространять эти библиотеки DLL только один раз (помещенные в папку APP_BASE \ bin).

Мы ищем решение, в котором утилиты (помещенные в APP_BASE \ Utils) смогут искать в папке bin (которая НЕ ОТНОСИТСЯ к своей базовой директории).

Я знаю, что стандартный конфигурационный файл .NET позволяет это делать только для сборок, которые находятся по относительным путям.

Есть ли другой способ сделать это? Наши библиотеки DLL не подписаны и не помещены в GAC.

1 Ответ

0 голосов
/ 12 июля 2011

Вы можете использовать AssemblyResolve событие.
Мы используем это событие для загрузки библиотек x86 \ x64 в зависимости от платформы пользователя.

FIY в качестве обходного пути вы также можете использовать .net developmentMode

Указывает, выполняет ли среда выполнения поиск сборок в каталогах, указанных в переменной среды DEVPATH.

...