Невозможно зарегистрировать DLL/OCX: сбой RegSvr32 с кодом выхода 0xC0000005 с Inno Setup 5.2.3

Я пытаюсь зарегистрировать COM DLL с помощью Inno Setup в созданном мной пакете установки. Во время тестовых установок в Vista, я получаю эту ошибку:

Невозможно зарегистрировать DLL/OCX: сбой RegSvr32 с кодом выхода 0xC0000005

Я нажимаю "Игнорировать", и моё приложение появляется для установки, но мне нужно открыть командную строку (как администратор) и затем regsvr32, чтобы установить COM DLL. Есть ли способ сделать это автоматически в Inno Setup?

2 ответа

Не используйте саморегистрацию (т.е. regsvr32), Microsoft предоставляет больше информации о причинах в документации установщика Windows.

Чаще всего определенные зависимости, которые ищет ваше приложение, еще не присутствуют (т. Е. Библиотеки DLL Microsoft, развернутые вместе с вашим приложением), когда происходит процесс самостоятельной регистрации.

Может ли InnoSetup записывать записи реестра? Вот и все regsvr32 выполняется... вы можете использовать инструмент WiX Heat для извлечения соответствующей информации реестра, которая regsvr32 положил бы на место и затем вручную перенести это обратно в код InnoSetup.

0xC0000005 = EXCEPTION_ACCESS_VIOLATION

DLL делает что-то, что вызывает сбой regsvr32.

Другие вопросы по тегам