Почему InstallShield 2015 InstallScript Installer запрашивает перезагрузку во время удаления? - PullRequest
1 голос
/ 31 января 2020

Мы использовали установщик Installscript, созданный с помощью инструмента InstallShield 2015 с пакетом обновления 2 (SP2), для установки наших приложений в течение многих лет, но, работая над нашим новым выпуском, я получаю новое диалоговое окно в конце процесса удаления этого установочного скрипта. установщик. Он отображает сообщение как удаление завершено и дает две опции переключателя в нижней части диалогового окна, упомянутого ниже.

  1. Да, я хочу перезагрузить компьютер сейчас.
  2. Нет, я перезагружу компьютер позже.

Однако такого кода нет добавлен в проект Installscript установщика, который запрашивает перезапуск после завершения удаления. Я искал в Google, но не повезло. Надеюсь, кто-нибудь знает, как остановить появление этого диалогового окна в конце удаления программы установки.

1 Ответ

0 голосов
/ 31 января 2020

Короткий ответ : Я предполагаю, что используемый файл (заблокирован) вызвал планирование автоматической перезагрузки c подскажите появиться. Заблокированные файлы почти всегда являются причиной таких проблем, а приглашение является встроенной функцией самого MSI. Используемым файлом может быть служебный файл, который не правильно отключен (время ожидания или ошибки проектирования в MSI). Некоторые подробности ниже. You should enable logging to work out what triggered the reboot prompt.


Документы Microsoft : Регистрация запросов на перезагрузку . Пример из файла журнала:

Info 1603. The file E:\testdb\Test\CustAct2.dll is being held in use.

Info 1903.Scheduling reboot operation: Deleting file [filename]. Must 
reboot to complete operation.

Ведение журнала : Вы должны включить ведение журнала, чтобы выяснить, что вызвало запрос перезагрузки. Вот ответ по ведению журнала: Включить журналы установки для установщика MSI без аргументов командной строки . Вы можете 1) включить политику ведения журнала, а затем вы можете найти журнал для каждого удаления, которое выполняется в папке TEMP. 2) Вы также можете вызвать деинсталляцию с помощью msiexec.exe /x и указать место ведения журнала в командной строке. Подробности см. В связанном ответе.


Удаление журнала : См. Раздел 3 здесь, чтобы узнать о командах удаления журнала: Удаление файла MSI из команды строка без использования msiexe c

msiexec.exe /x "c:\filename.msi" /QN /L*V "C:\msilog.log" REBOOT=ReallySuppress
msiexec.exe /x {11111111-1111-1111-1111-11111111111X} /QN /L*V "C:\msilog.log" REBOOT=ReallySuppress

Причина запроса перезагрузки : Скорее всего, причиной запроса на перезагрузку является файл, который используется и, следовательно, не может быть удален. MSI имеет функции auto-magi c, которые затем запускают перезагрузку для замены или удаления файла. Перезапуск делает это возможным. Есть также много других возможных причин для перезагрузки. Вы могли иметь зарегистрированный материал, который нуждается в перезагрузке, чтобы отменить регистрацию. В том же ключе, что и используемые файлы, но это может включать в себя все виды регистрации в масштабе всей системы.

Службы : особый случай используемых файлов - это службы , Есть ли у вас в настройках? Очень часто приглашение к перезагрузке вызвано тем, что служба не закрывается должным образом. Это может происходить из-за проблем с синхронизацией (слишком медленно останавливаться) или из-за отсутствия надлежащих команд в настройке для удаления сценария ios, чтобы остановить службу, как при удалении.


REINSTALLMODE : обратите внимание, что для свойства REINSTALLMODE установлено значение "amus" - принудительная перезапись (файлы и реестр) - показал, что приводит к появлению большого количества запросов на перезагрузку для многих пакетов MSI при установке (это также может повлиять на удаление, хотя я не вижу, чтобы оно устанавливалось так часто для удаления).


Restart Manager : в Windows появились новые функции для решения проблем перезагрузки. The overall idea is to prefer to shut down applications auto-magically with a restart parameter registered for the application to restart itself after the deployment operation - rather than triggering system reboots. Информация об этой функции приведена здесь:

...