Ошибка При установке Microsoft Visual C++ 2005 с пакетом обновления 1 (SP1) произошел сбой
Когда мы делаем обновления, мы только начали получать сообщение об ошибке выше. Тем не менее, если я перейти к папке PreReq (C:\ProductName\ISSetupPrerequisites\{AAEC4BE2-1C6B-45E0-B33D-0D657A05F292}
) и запустите vcredist_x86.exe и перейдите в другую папку prereq (C:\ProductName\ISSetupPrerequisites\{8034C99E-3BC0-4E53-BC6E-02E3D8CF5378}
) (в таком порядке) работает нормально и устанавливает. Я предполагаю, что один из них для C++ 2005, а другой для версии SP1, но я не уверен, какой именно.
Я предполагаю, что первый предназначен для первой версии, а второй - для SP1, потому что, если я установлю их в обратном порядке, произойдет сбой. Интересно, что ни один из них не выбран в качестве предварительного условия на вкладке "Распространяемые" в Installshield. Так что проблема может быть в том порядке, в котором он пытается их установить. Я даже не вижу C++ 2005 (не SP1) в списке распространяемых в IS, но по какой-то причине в выпуск включены два файла vcredist_x86.exe, и при запуске в правильном порядке (вне установки) они работают хорошо.
Так как я могу изменить порядок в установщике или просто заставить это работать? Я отменил все изменения в моем файле.ism до того, как это начало происходить, и это не помогло.
PS Я также разместил этот вопрос на форуме InstallShield.
1 ответ
Насколько я понимаю, нет причин устанавливать оба этих распространяемых пакета VC++ 2005. Вам, вероятно, нужен только новый.
Поскольку вы говорите, что они не проверены на вкладке Redistributables, это означает, что они, вероятно, автоматически добавляются InstallShield во время сборки. Это происходит из-за того, что для некоторых компонентов в .NET Scan at Build выбран параметр Зависимости и свойства. С этим параметром InstallShield сканирует файлы компонентов и пытается добавить все необходимые зависимости. Если вы знаете, какие зависимости нужны, вы можете отключить этот параметр, а затем самостоятельно выбрать необходимые зависимости на вкладке "Вторично распространяемые (или предварительные условия)".
В этих GUID нет ничего волшебного - это просто GUID, которые InstallShield использует в своих предопределенных предварительных условиях:
- {8034C99E-3BC0-4E53-BC6E-02E3D8CF5378} является VC++ 2005 SP1 (x86)
- {AAEC4BE2-1C6B-45E0-B33D-0D657A05F292} является VC++ 2005 SP1 Обновление безопасности MFC KB2538141 (x86)
Если необходимое условие не включено в InstallShield, вы можете определить свое собственное предварительное условие. Перейдите в Инструменты / Редактор предварительных требований.