УстановитьЩилд:Дарвиновские дескрипторы
-
03-07-2019 - |
Вопрос
Мой установщик InstallShield, похоже, не регистрирует правильно несколько своих COM-библиотек DLL, хотя я обновил для них информацию COM в установщике.Если я вручную запускаю regsvr32 после установки, все в порядке.
Я заметил, что после установки в реестре у меня есть значения InprocServer32 для моих компонентов, содержащие строки случайного вида, которые, по моему мнению, являются Дарвиновские дескрипторы, который, как я понимаю, переопределит местоположение открытого текста, если оно присутствует.Когда я вручную запускаю regsvr32, эти дескрипторы Дарвина исчезают.Моя текущая гипотеза состоит в том, что информация, закодированная в этих дескрипторах, неверна, и поэтому, когда моя программа пытается создать экземпляры COM-компонентов, она использует неправильную информацию дескриптора Дарвина и терпит неудачу, даже несмотря на то, что открытый путь к DLL правильный.
Может ли кто-нибудь пролить свет на то, как я могу проверить, так ли это, расшифровать эти дескрипторы, запретить InstallShield генерировать дескрипторы Дарвина или иным образом исправить мой установщик?
Решение
Я понимаю, что дескрипторы Дарвина — это служба установщика Windows, отслеживающая точки входа COM до исходного .MSI (чтобы она могла восстановить .dll, если она будет удалена и т. д.).MSI сохраняет фактическую стоимость.
Предположительно, поскольку вы восстановили информацию COM, вы удалили MSI со своего компьютера и переустановили его (так что msiexec выполняет не просто служебную установку, а не полную установку).