2008-10-15 4 views
1

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

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

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

Благодарим заранее!

ответ

1

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

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

+0

Вы имеете в виду удалить MSI на машине, на которой я строю установщик? Это отдельная машина к той, на которую я устанавливаю установщик, которая представляет собой чистую виртуальную машину Windows XP. Я даже не удалил MSI из ... Я даже не уверен, что знаю, как это сделать, хотя это не должно иметь значения на виртуальной машине, поскольку в настоящее время я всегда тестирую чистую. – NeilDurant 2008-10-18 02:32:36