Wix 3, диалог выхода
Можно ли пропустить диалог завершения после установки?
Причина, по которой мы этого хотим, заключается в том, что мы запускаем новую установку после завершения первой установки, и это работает. Тем не менее, установка начинается после того, как пользователь нажимает "Завершить" в диалоговом окне "Завершить", но вместо этого ему следует запустить новую установку, не нажимая кнопку "Завершить", чтобы запустить ее.
Код, который мы используем, можно найти по адресу:
https://gist.github.com/raw/784215/7f7cc7dca73e10fd7d991c3926269719d6b204c6/mycustomui.wxs
Вот несколько шагов, которые я хочу сделать:
- Пользователь запускает.msi, отображается диалог с выпадающим списком с языками
- Пользователь выбирает языки в выпадающем списке и нажимает кнопку "Далее".
- Установщик распаковывает / устанавливает "настоящую" MSI, а затем завершает работу, а затем использует настраиваемое действие для запуска "реальной" установки с правильными параметрами.
2 ответа
То, что лучше всего подходит для упомянутого вами сценария, называется загрузчиком. Есть несколько вариантов, вы можете найти эту тему интересной. Кстати, насколько я знаю, dotNetInstaller поддерживает сценарий с языками, которые вы описали из коробки.
Вы в настоящее время используете <UIRef Id="WixUI_Common" />
См. Главу " Изменение последовательности пользовательского интерфейса встроенного диалогового набора " в разделе " Настройка встроенных диалоговых наборов WixUI". Это объясняет, как настроить существующий пользовательский интерфейс. Вот пример с этой страницы:
Например, чтобы удалить LicenseAgreementDlg из диалогового набора WixUI_InstallDir, вы должны сделать следующее:
- Скопируйте полное содержимое, определенное в WixUI_InstallDir.wxs в исходном коде WiX, в свой проект.
- Удалите элементы, которые используются для добавления событий "Назад" и "Далее" для LicenseAgreementDlg.
Измените элемент, который используется для добавления события Next в WelcomeDlg, чтобы перейти к InstallDirDlg вместо LicenseAgreementDlg. Например:
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="InstallDirDlg">1</Publish>
Измените элемент, который используется для добавления события Back в InstallDirDlg, чтобы перейти к WelcomeDlg вместо LicenseAgreementDlg. Например:
<Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>
Вы также можете создать собственное определение пользовательского интерфейса. (Если вы не включите какой-либо пользовательский интерфейс или UIRef, пользовательский интерфейс вообще не будет).