2017-02-18 4 views
0

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

Example

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

enter image description here

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

ответ

1

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

Visual Studio Installer > How To Launch App at End of Installer

Вопрос следующий показывает решение, однако с несогласием о том, как желательно это:

Run exe after msi installation?

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

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

+0

Спасибо за ответ. На данный момент я только что удалил часть «start after install», чтобы программа установки успешно завершила работу. В идеале, я все равно хотел бы, чтобы мое приложение автоматически запускалось после установки, поэтому я проверю WiX. У меня есть только один экземпляр Exe для дампа в Program Files (плюс ярлык меню «Пуск»), поэтому, надеюсь, будут какие-то уроки или указатели на то, как добиться этого, используя WiX. – Rawns

+0

Нет проблем.Документация здесь https://www.firegiant.com/wix/tutorial/ представлена ​​во многом, настолько, что она может быть немного подавляющей, но она очень хорошо объясняет концепции Windows Installer и хорошо понимает их важно, если вы хотите, чтобы ваша установка была работоспособной, ремонтируемой и обновляемой. –

2

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

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

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

Смежные вопросы