Installshield 2011 — сбой при сборке между манифестом внедрения и подписанием

После обновления до машины с Windows 8 и 8.1 все мои проекты InstallShield начали давать сбой при подписании. Ошибка возникает после или во время внедрения манифеста в setup.exe со следующей ошибкой:

Исключение ACCESS_VIOLATION (0xc0000005) по адресу 0x76b34db0 при попытке чтения адреса 0x00000001.

Файл: C:\Program Files (x86)\InstallShield\2011\System\isdev.exe Версия: 17.0.0.714 Исключение: c0000005 Адрес: 76b34db0 Тип доступа: чтение Адрес доступа: 00000001

...

Когда я решил выполнить отладку после сбоя, я получаю исключение в Visual Studio, говорящее об ошибке в Wintrust.dll:

Необработанное исключение по адресу 0x76B34DB0 (wintrust.dll) в isdev.exe: 0xC0000005: место чтения с нарушением прав доступа 0x00000001.

Сообщение об ошибке в журнале сборки заканчивается словами:

ISDEV : ошибка -7132: Произошла ошибка потоковой передачи файла поддержки ISSetup.dll S:\InstallShields\Server Fix Pack_IS2011\Setup.inx Внедрение манифеста SetupExe.Admin.manifest в setup.exe Начато подписание 8F8D.tmp ... Успешно подписано: 8F8D .tmp

Чтобы обойти это в небольших проектах, я удалил все параметры подписи, особенно использование файлов сертификатов/закрытых ключей spc и pvk.

После сборки установка прошла успешно без подписи. Я снова ввел подпись, используя только файл сертификата pfx. Но я никогда не могу выбрать опцию «подписывать файлы в пакете».

Есть проекты, в которых ни один из этих шагов не работает. Кто-нибудь сталкивался с такими проблемами в Windows 8/8.1? Есть ли обходные пути?

Спасибо


person reckface    schedule 25.06.2014    source источник
comment
У меня были похожие проблемы — не удалось подписать программу запуска setup.exe для моей установки на основе MSI. Я только что научился с этим жить, но мне немного стыдно каждый раз, когда я вижу, как кто-то запускает установщик, и появляется окно предупреждения UAC, а не дружественное окно с данными моего сертификата.   -  person Ian Yates    schedule 11.08.2014


Ответы (2)


У меня была та же проблема, нарушение прав доступа в isdev.exe. Я отключил все подписи, как вы упомянули, перестроил их, и это сработало. Я вернулся к подписанию, и теперь это работает.

Для справки: я использую файл сертификата pfx, а параметр Подписать файлы в пакете нет.

Спасибо за помощь!!!

Примечание. Убедитесь, что на вашем компьютере зарегистрирован сертификат, который может иметь какое-то отношение к нему. Удачи!

person Jesse Wright    schedule 02.12.2014

Я работал над этой проблемой следующим образом:

Просто подпишитесь как обычно, кроме установочного пакета. Затем добавьте эту строку в событие после сборки:

"C:\Program Files (x86)\InstallShield\2011\System\Signtool.exe" sign /f "<private Cert File>.pfx" /p <password> /du "http://<whatever>" /t "<timestamp server. See your cert supplier>" "%<ISReleasePath>%\<Name>.msi"

Теперь все подписано и UAC тоже работает.

person Ralph Erdt    schedule 01.08.2018