Wix 3, диалог выхода

Можно ли пропустить диалог завершения после установки?

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

Код, который мы используем, можно найти по адресу:

https://gist.github.com/raw/784215/7f7cc7dca73e10fd7d991c3926269719d6b204c6/mycustomui.wxs

Вот несколько шагов, которые я хочу сделать:

  • Пользователь запускает.msi, отображается диалог с выпадающим списком с языками
  • Пользователь выбирает языки в выпадающем списке и нажимает кнопку "Далее".
  • Установщик распаковывает / устанавливает "настоящую" MSI, а затем завершает работу, а затем использует настраиваемое действие для запуска "реальной" установки с правильными параметрами.

2 ответа

Решение

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

Вы в настоящее время используете <UIRef Id="WixUI_Common" /> См. Главу " Изменение последовательности пользовательского интерфейса встроенного диалогового набора " в разделе " Настройка встроенных диалоговых наборов WixUI". Это объясняет, как настроить существующий пользовательский интерфейс. Вот пример с этой страницы:

Например, чтобы удалить LicenseAgreementDlg из диалогового набора WixUI_InstallDir, вы должны сделать следующее:

  1. Скопируйте полное содержимое, определенное в WixUI_InstallDir.wxs в исходном коде WiX, в свой проект.
  2. Удалите элементы, которые используются для добавления событий "Назад" и "Далее" для LicenseAgreementDlg.
  3. Измените элемент, который используется для добавления события Next в WelcomeDlg, чтобы перейти к InstallDirDlg вместо LicenseAgreementDlg. Например:

    <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="InstallDirDlg">1</Publish>
    
  4. Измените элемент, который используется для добавления события Back в InstallDirDlg, чтобы перейти к WelcomeDlg вместо LicenseAgreementDlg. Например:

    <Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>
    

Вы также можете создать собственное определение пользовательского интерфейса. (Если вы не включите какой-либо пользовательский интерфейс или UIRef, пользовательский интерфейс вообще не будет).

Другие вопросы по тегам