Я использую ‹MajorUpgrade> в WiX 3.6, чтобы принудительно удалить предыдущую версию моего приложения, когда установка более новой версии. Мое приложение устанавливает DLL-файл расширения в проводник Windows, поэтому при удалении списков используемых файлов проводник и по умолчанию закрывает указанное приложение. Это убивает проводник Windows, поскольку моя оболочка исчезает (что несколько раздражает пользователя), однако я все еще получаю сообщение об ошибке, говорящее, что не все приложения могут быть закрыты, и заявляет, что потребуется перезагрузка. Я предпочитаю избегать этого трэша и пропускать диалоговое окно «Используемые файлы», просто информируя пользователя о необходимой перезагрузке в конце. Есть ли способ сказать WiX пропустить диалоговое окно «Используемые файлы»?
WiX: избегайте отображения диалогового окна используемых файлов и просто запрашивайте перезагрузку в конце установки.
Ответы (3)
<Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable"/>
Это работает для меня, но я не пытаюсь убить какие-либо системные службы.
Вы также пробовали «DisableShutdown»?
«Установщик Windows использует диалоговое окно FilesInUse. Этот параметр отключает попытки диспетчера перезапуска смягчить перезапуски при установке пакета установщика Windows, который не был создан для использования диспетчера перезапуска. Установщик по-прежнему использует диспетчер перезапуска для обнаружения файлов в использования приложениями."
http://msdn.microsoft.com/en-us/library/aa370377%28v=vs.85%29.aspx
error 2803: dialog view did not find a record for the dialog
- person Alexandru; 17.03.2015
Вы можете отключить интеграцию Restart Manager, установив свойство MSIRESTARTMANAGERCONTROL
равным "Disabled"
(из SDK MSI). Вы также можете попробовать удалить диалоговое окно FilesInUse
, но статическое Internal Consistency Evaluator (ICE) выдаст ошибку. Я надеюсь, что отключения Restart Manager будет достаточно, чтобы прекратить попытки вытащить ресурсы из explorer.exe
.
FilesInUse
и надеяться, что установщик Windows не предоставит внутренний диалог. :)
- person Rob Mensching; 15.04.2013
FilesInUse
встроено, и вам придется перестроить расширение пользовательского интерфейса без него для тестирования.
- person Rob Mensching; 17.04.2013
MSIRESTARTMANAGERCONTROL=Disabled
или MSIRESTARTMANAGERCONTROL=Disable
?
- person azhrei; 02.07.2013
У меня также есть ситуация, когда попытка закрыть и снова открыть приложения всегда терпит неудачу. Требуется перезагрузка. Я попытался использовать все решения, предлагаемые здесь. Ни один из них не работал. Я смог решить проблему просто, хотя. Эта статья была подсказкой. https://msdn.microsoft.com/en-us/library/aa369546(v=vs.85).aspx
Я добавил условие в стандартное действие InstallValidate, которое всегда разрешается как false. Действие никогда не запускается. Стандартное действие имеет дело только с затратами на диск и открытыми процессами. Прекращение вызова действия останавливает все, что предлагает закрыть все. Мне также пришлось установить для свойства REBOOT установщика Windows значение FORCE, чтобы получить запрос на перезагрузку в конце установки.
Мое приложение занимает мало места на диске. Если моя установка потерпит неудачу позже в процессе, потому что диск будет заполнен, это будет большой проблемой, я найду способ сделать это самостоятельно.