Вопрос

Мой установщик InstallShield, похоже, не регистрирует правильно несколько своих COM-библиотек DLL, хотя я обновил для них информацию COM в установщике.Если я вручную запускаю regsvr32 после установки, все в порядке.

Я заметил, что после установки в реестре у меня есть значения InprocServer32 для моих компонентов, содержащие строки случайного вида, которые, по моему мнению, являются Дарвиновские дескрипторы, который, как я понимаю, переопределит местоположение открытого текста, если оно присутствует.Когда я вручную запускаю regsvr32, эти дескрипторы Дарвина исчезают.Моя текущая гипотеза состоит в том, что информация, закодированная в этих дескрипторах, неверна, и поэтому, когда моя программа пытается создать экземпляры COM-компонентов, она использует неправильную информацию дескриптора Дарвина и терпит неудачу, даже несмотря на то, что открытый путь к DLL правильный.

Может ли кто-нибудь пролить свет на то, как я могу проверить, так ли это, расшифровать эти дескрипторы, запретить InstallShield генерировать дескрипторы Дарвина или иным образом исправить мой установщик?

Это было полезно?

Решение

Я понимаю, что дескрипторы Дарвина — это служба установщика Windows, отслеживающая точки входа COM до исходного .MSI (чтобы она могла восстановить .dll, если она будет удалена и т. д.).MSI сохраняет фактическую стоимость.

Предположительно, поскольку вы восстановили информацию COM, вы удалили MSI со своего компьютера и переустановили его (так что msiexec выполняет не просто служебную установку, а не полную установку).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top