Невозможно зарегистрировать 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.