Программа установки не закрывается после установки и загрузки новой версии.

У меня есть проект установщика Visual Studio для моего приложения C #. Он настроен на удаление всех предыдущих версий моего приложения, установку новой версии и последующий запуск приложения после его установки. Он работает так, как ожидалось, до самого конца, где находится на последнем этапе "Пожалуйста, подождите":

Пример

На данный момент новая версия моего приложения была установлена, и она работает вполне успешно, однако приведенный выше снимок экрана просто сидит (полностью реагирует), и он переместится в окно «Установка завершена» только после того, как я закрою вручную вниз только что установленной версии моего приложения.

введите описание изображения здесь

Я сделал что-то не так с конфигурацией моего проекта установщика? Я не хочу, чтобы людям приходилось закрывать приложение только для завершения процесса установки, а затем снова запускать приложение вручную! Вот почему я настроил установщик на автоматический запуск новой версии после ее установки!


person Rawns    schedule 18.02.2017    source источник


Ответы (2)


Кажется, это обычная проблема при использовании проекта установщика Visual Studio. Следующий вопрос указывает на аналогичную проблему:

Установщик Visual Studio ›Как запустить приложение в конце установщика

Следующий вопрос показывает решение, однако с разногласиями относительно того, насколько оно целесообразно:

Запустить exe после установки msi?

Я бы порекомендовал, если возможно, попытаться использовать WiX (http://wixtoolset.org/ ), чтобы создать установщик Windows. Кривая обучения может быть немного круче, чем по сравнению с проектами установщика Visual Studio, но как только вы освоитесь с этим, вы обнаружите, что получаете гораздо больше возможностей установщика Windows, а также ряд дополнительных функций. предоставляется набором инструментов Wix. В документации для WiX приведен пример того, как добиться того, что вы пытаетесь сделать:

http://wixtoolset.org/documentation/manual/v3/howtos/ui_and_localization/run_program_after_install.html

person Alan Low    schedule 19.02.2017
comment
Спасибо за ответ. На данный момент я только что удалил часть «запуск после установки», поэтому установщик успешно завершает свою работу. В идеале, я бы все равно хотел, чтобы мое приложение запускалось автоматически после установки, поэтому я проверю WiX. На самом деле у меня есть только один Exe для сброса в Program Files (плюс ярлык в меню «Пуск»), так что, надеюсь, появятся несколько руководств или указателей о том, как этого добиться с помощью WiX. - person Rawns; 20.02.2017
comment
Совершенно никаких проблем. Здесь документация firegiant.com/wix/tutorial содержит много деталей, так что так что это может быть немного ошеломляющим, но он очень хорошо объясняет концепции установщика Windows, и хорошее их понимание важно, если вы хотите, чтобы ваша установка была исправной, поддерживаемой и обновляемой. - person Alan Low; 20.02.2017

Основная проблема, о которой я не упоминал явно, заключается в том, что выполнение вашей программы в конце установки является синхронным, поэтому установщик ожидает ее завершения. Если вы не хотите переводить свой проект на WiX, есть как минимум два решения:

  1. Вместо того, чтобы запускать программу непосредственно как настраиваемое действие, создайте еще одно небольшое настраиваемое действие, которое асинхронно запускает ваш exe и завершает работу.

  2. Настройки Visual Studio не позволяют вам устанавливать параметр async, как это делают другие инструменты, но вы можете сделать это, открыв файл MSI (с помощью Orca) и перейдя в таблицу CustomAction. Скорее всего, ваше настраиваемое действие будет иметь тип 3090. Если вы измените его на 3282 (добавив 192), настраиваемое действие будет асинхронным, и установка завершится.

person PhilDW    schedule 20.02.2017