Размещение библиотек компонентов в папке EXE (с или без .local файлов) может быть вредным для гигиены целевых машин.
Программы VB6 регистрируют компоненты здесь через точку входа автозапуска за вашей спиной, если они ранее не зарегистрированы. Затем, если приложение перемещено или удалено, вы оставите пользователя со сломанной регистрацией - возможно, фатальной для впоследствии установленных приложений с использованием некоторых из тех же компонентов. Это, вероятно, хорошо, хотя для компонентов, специфичных для приложения, то есть для вашей собственной DLL или OCX, которая будет , никогда не понадобится другим приложением.
. Локальный трюк действительно не предназначен для использования с программами VB6, и если он используется, ваш установщик должен знать и правильно устанавливать и регистрировать компоненты, если они еще не находятся на машине. Это подразумевалось как ручной хак, чтобы обойти проблемы совместимости версий DLL на отдельных машинах, а не стратегию развертывания.
Перейдите на демонстрации приложений и сборок SxS (Reg-Free COM и другие) для лучшего решения. Переадресация DLL/COM (.local) была хорошей попыткой, но у нее много бородавок.
Это правильный ответ на Win2k +. Имейте в виду, что если A.EXE имеет встроенный манифест или существует A.EXE.manifest (например, чтобы включить бесплатный COM-код, сделать вашу программу DPI осведомленной и т. Д.), Файл .local игнорируется , поскольку манифестации предназначены для замены технологий. Если это так, в вашем манифесте вы можете просто перечислить файлы, которые вы хотите использовать из своего каталога приложений, чтобы заставить их загружаться оттуда: <имя файла = "my.dll" /> – 2009-04-19 09:26:09