2013-09-13 4 views
2

У меня есть проект vb6, который время от времени обрабатывается любым количеством разных разработчиков (некоторые из 32-битных Windows и некоторые из них на 64-битной победе), но мы получаем ссылочные ошибки, потому что некоторые из ссылочных Dll's (и зарегистрирован) в папке файлов программ или файлов программ (x86) в зависимости от машины, и это, похоже, путает vb6.VB6 Несколько разработчиков Исходные ошибки

Глядя на VBP, включены пути для ссылок, есть ли способ настроить ссылки, чтобы они не выходили из системы в обеих системах?

+0

Вы можете проверить, существует ли один файл/каталог, и если он не ссылается на другой файл/каталог. – James

ответ

8

Насколько я знаю (и я мог ошибаться), VB6 фактически не использует эти пути для большей части всего. Вместо этого он использует GUID и версию TypeLib, чтобы посмотреть в реестре и найти файл, содержащий информацию о типе. Затем он обновляет путь, который он использует только при сохранении VBP.

Возможно, единственный раз, когда этот путь используется, когда версия typelib & не найдена в реестре. Это может привести к тому, что VB6 попытается перерегистрировать библиотеку, используя самозанятые вызовы точек входа на основе этого пути.

Если это неверно, то, что следует не применяется, хотя это, как правило, работают вещи в любом случае:

кажется гораздо более вероятно, что ваша проблема заключается в том, что VB6 и/или эти библиотеки (третья сторона)? никогда не устанавливались должным образом.

Если библиотека не зарегистрирована глобально (HKLM), то каждый «новый пользователь» (новый на этой машине), открывающий такой проект, инициирует попытку повторной регистрации на основе пути в файле VBP. Если это не удастся, у них будет проблема с неправильной ссылкой.

Исправление этого вручную путем перехода в библиотеку вызывает побочный эффект перерегистрации библиотеки для этого пользователя в виртуальном хранилище реестра, если VB6.EXE не работает повышенным образом, что создает проблему для пользователя. Если он работает, он должен «вылечить» проблему для всех на этой машине оттуда. Это не истинное излечение, так как у вас есть осиротевшие регистрации мусора в виртуальных магазинах разных пользователей, которые могут укусить вас в будущем, когда библиотеки будут обновлены.

VB6 и библиотеки, которые он будет использовать, должны быть установлены при полной установке: их части и части должны храниться в не виртуализированных папках, а компоненты должны быть зарегистрированы в не виртуализированном улье HKLM.

VB6.EXE должен всегда работать с повышенными правами и будет наиболее надежным, если это было сделано путем применения манифеста приложения для выполнения повышения, что предотвращает устаревшую виртуализацию приложений.

Реорганизация реестра WOW64 - отдельная тема. Поскольку VB6.EXE - это 32-разрядное программное обеспечение, которое должно работать прозрачно.

Смежные вопросы