Порядок поиска в Dynamic-Link Library описывает, какие возможности вы можете изменить для поиска. Он описывает порядок поиска и упоминает манифесты и функцию SetDllDirectory () как возможности изменения порядка поиска.
Хотя SetDllDirectory выглядит многообещающе, он будет надежно работать только в том случае, если вы динамически загружаете свои библиотеки DLL, чего вы не делаете из того, что я понимаю.
Теперь, что касается использования манифестов: Файлы конфигурации приложения говорит об атрибуте privatePath
, который можно использовать для [указать] относительные пути подкаталогов в базовом каталоге приложения, которые могут содержать сборки . Для меня это звучит так, как будто это должно работать только для параллельных сборок, но вы можете попробовать.
Я с готовностью признаю, что никогда не беспокоился о манифестах (за исключением того, что вам нужно знать в VS 2005, чтобы вообще что-либо запускать), и я бы рекомендовал пропустить идею подкаталогов библиотеки для неявно загруженные библиотеки DLL и положить их в каталог приложения и покончим с этим. Для явно (динамически) загруженных библиотек DLL вы можете просто определить их полный путь из пути к исполняемому файлу и указать его в LoadLibrary (), и вам не нужно беспокоиться о пути поиска.