Как мне запланировать установку при следующей перезагрузке с использованием MSI? - PullRequest
3 голосов
/ 06 июня 2011

У нас есть установщик MSI (созданный с использованием Wix), который настроен для выполнения обновлений.Наши клиенты используют его для обновления нашего приложения на нескольких компьютерах одновременно, используя пакет SMS, выполняющий msiexec в автоматическом режиме.

Проблема в том, что некоторые из их пользователей все еще будут запускать наше приложение в то время, когдаУстановщик запущен.Мы не хотим отталкивать этих пользователей, и запуск установки в то время, когда они используют приложение, неизменно ломает вещи.

Нашим идеальным решением было бы запланировать установку при следующей загрузке машины.up.

Это довольно здоровенный список требований, но кто-нибудь знает, как мне этого добиться или как я мог бы выглядеть дальше?

Ответы [ 2 ]

1 голос
/ 14 июня 2011

Вы можете добавить значение в реестр в HKLM\software\microsoft\windows\currentversion\RunOnce, и оно будет работать при следующем входе пользователя в систему.

0 голосов
/ 07 июня 2011

Установщик Windows автоматически обнаруживает используемые файлы. Кроме того, при автоматической установке он обрабатывает их автоматически:

  • файлы, которые не используются, перезаписываются
  • используемые файлы запланированы для обновления после перезагрузки

Как видите, это несколько проблематично, поскольку некоторые файлы обновляются, а некоторые нет.

Хорошее решение - установить для свойства REBOOTPROMPT значение "S". Таким образом, целевая машина автоматически перезагружается после установки.

К сожалению, пакеты MSI не могут обнаружить запущенные процессы, остановить установку и запланировать ее при следующей перезагрузке. Это можно сделать только с помощью специального загрузчика EXE.

...