Пакет установщика, нацеленный на установщик Windows 3.1, завершается ошибкой, когда установщик Windows 4.5 установлен
У нас есть пакет установщика, созданный с помощью InstallShield 2009 и предназначенный для установщика Windows 3.1.
Недавно мы начали замечать, что когда-то, при установке на некоторых хостах под управлением Windows 2003 R2 x86, установка завершается неудачно, и журнал установщика сообщает код ошибки 1603 (что, кстати, не очень помогает, так как означает ERROR_INSTALL_FAILURE, это очень общее "Неустранимая ошибка во время установки.").
Поскольку установка все еще работает на некоторых других хостах на той же платформе, после дальнейшего расследования мы выяснили, что это происходит на хостах, где уже установлен Sql Server 2008 R2, что побудило нас выяснить, действительно ли проблема связана с установщиком Windows 4.5,
Всякий раз, когда установщик Windows 4.5 был установлен с помощью пакета установщика, наш пакет установщика завершался с ошибкой 1603. До сих пор мы находили обходной путь: если мы вручную удаляем установщик Windows 4.5 (запуская что-то вроде "C: \ WINDOWS \ $ NtUninstallKB942288-v4" $ \ spuninst \ spuninst.exe"), мы можем успешно запустить наш установочный пакет, но это имеет ряд недостатков:
- пользователю, удаляющему установщик Windows 4.5, предлагается диалоговое окно со списком всех различных программных продуктов, установленных с его использованием, и фактически после удаления этого компонента связь между этими продуктами и установщиком Windows 4.5 теряется, даже если мы переустанавливаем его после успешной установки нашего приложения;
- поскольку Microsoft выпустила различные версии установщика Windows 4.5, расположение утилиты для удаления не строго указано выше;
- Неловко просить клиентов выполнить такую работу.
Я полагаю, что обновление пакета установщика до целевого установщика Windows 5 может решить эту проблему, но, если это возможно, я бы хотел этого избежать и продолжаю использовать InstallShield 2009 для создания этого конкретного пакета.
Я изучил базы знаний Microsoft и Flexera (и продолжаю свое расследование), но пока безрезультатно.
Кто-нибудь знает, опубликовали ли Microsoft, Flexera или любое другое третье лицо исправление или дополнительную информацию об этой проблеме?
Некоторая информация о сбое кода ошибки 1603
Мы получили подробные журналы по этой проблеме, по крайней мере, с 3 разных серверов, и мы тщательно изучили это, но пока не помогли. Большинство действий возвращают 1, часть 0 (в частности IsolateComponents, MigrateFeatureStates, IsolateComponents, SetODBCFolders, MigrateFeatureStates, UnpublishComponents, UnregisterComPlus, UnregisterTypeLibraries, UnregisterMIMEInfo, RemoveShortcuts, RemoveFiles, CreateShortcuts, RegisterMIMEInfo, InstallODBC, RegisterTypeLibraries, RegisterComPlus и PublishComponents, но ничего до сих пор вышло расследование те), кажется, что пакет установщика фактически можно установить (выполнить всю последовательность до "УСТАНОВИТЬ. Возвращаемое значение 1.", он даже печатает "Продукт: [Наш продукт] - Операция установки завершена успешно."), только тогда он начинает откатывать все, и поскольку при откате возникают различные ошибки, я думаю, что некоторые из них вызовут 1603 (вероятно, 1607, возвращенный MsiProvideAssembly в ISChainPackagesCleanup), но дело в том, что он не должен откатываться, и с установщиком Windows 3.1 (или 5.x в этом отношении) это не так, он выполняет откат только тогда, когда Установщик Windows 4.5 установлен в среде Windows 2003 x86.
1 ответ
Скорее всего, в вашем пакете есть действие, которое не выполняется, либо пользовательское, либо стандартное. Попробуйте создать подробный журнал установки, которая не удалась (очень важно быть подробным). После сбоя откройте журнал в текстовом редакторе и найдите код ошибки (1603), чтобы узнать, что его вызывает.
Как примечание, не пытайтесь обвинить установщика Windows. В версии 4.5 нет ничего плохого, нет исправлений или чего-то в этом роде. Проблема в вашей упаковке. Он делает что-то неправильное или неподдерживаемое.
РЕДАКТИРОВАТЬ:
Из вашего поста обновления это выглядит как неудачная цепная установка. Ошибки не отображаются в журнале, потому что ошибка происходит в другом процессе установки.
Если вы не используете цепочечные пакеты, попробуйте поискать ошибки в окне просмотра событий.
Если вы используете цепочечные пакеты, вы можете попробовать включить политику журналирования установщика Windows и проверить журналы, созданные ими. Скорее всего, один из пакетов столкнулся с проблемой.