Как я могу отладить установку WIX, которая не успешно регистрирует один OCX?
Я пытаюсь создать MSI, который поместит два файла OCX в папку Program Files (x86), а также зарегистрирует оба файла OCX.
Первый из двух файлов OCX (который фактически использует второй OCX во время выполнения) успешно зарегистрирован. Второй OCX не был успешно зарегистрирован. Я знаю это, потому что если я запускаю regsvr32 на OCX, который не был успешно зарегистрирован, то он работает в приложении, для которого он используется.
Регистрационная информация для двух файлов OCX была сгенерирована с помощью инструмента сбора урожая (heat.exe). Я использовал инструмент высокой температуры на обоих OCX, поэтому я не могу понять, почему регистрация OCX работает только для одного из них, а не для обоих.
Как я могу отладить это?
1 ответ
Это на самом деле не так уж и странно. COM добыча / сбор является сложным делом. При наличии достаточного количества компонентов COM, вы обнаружите, что часто это не очень хорошо.
У вас уже есть половина проблемы решена. Тот факт, что regsvr32 решает проблему, говорит о том, что вы близки и не пропускаете другие зависимости, а что нет.
Что вы хотите сделать, так это получить чистый компьютер (виртуальные машины отлично подходят для этого) в состоянии, в котором вы установлены, но только один зарегистрирован. Используйте инструмент, который может сканировать и захватывать реестр (InstallWatch достойный) до и после запуска regsvr32. Затем сравните снимок, чтобы увидеть, что изменилось.
Вам придется отфильтровать некоторый шум от других процессов на машине, но с небольшим опытом должно быть очевидно, что изменилось. Включите это в исходный код wxs, пересоберите и повторно протестируйте (опять же, виртуальные машины - это здорово).