Фиксированное расположение файловой системы
Одна из возможностей - установить их в подкаталог Program Files
, как это уже предложено @Martin Beckett.
Переменная расположение файловой системы, фиксированная запись в реестре
Если вы не хотите устанавливать их в определенном месте, вы также можете сохранить их местоположение в реестре Windows. Вы должны установить некоторые ключи в HKEY_LOCAL_MACHINE\SOFTWARE
, которые ваши приложения могли бы прочитать, чтобы узнать, где находятся библиотеки DLL. Затем библиотеки DLL могут быть загружены во время выполнения.
P.S .: Предотвращение потерянных DLL
Вы можете пойти еще дальше и использовать реестр или другое хранилище (скажем, файл) для хранения информации о том, какое из ваших приложений использует какую из ваших DLL. Например:
FooCommon.dll <- FooApp1, FooApp2, FooApp3
FooBar.dll <- FooApp1, FooApp3
FooBaz.dll <- FooApp2, FooApp3
Всякий раз, когда одно из ваших приложений не установлено, оно удаляет себя с этой карты. Любой деинсталлятор может затем безопасно удалить DLL, которая больше не используется каким-либо приложением. Этот метод похож на подсчет ссылок, и идея состоит в том, чтобы предотвратить накопление потерянных библиотек DLL в файловой системе пользователя.