Как настроить диалог прогресса Wix?
Вопрос
Я пытаюсь настроить стандартный диалог прогресса WiX (я хочу, чтобы он отображал ActionData).я следил за Руководство Нила по настройке диалогов но беда в том, что вместо моего по-прежнему показывается оригинальный ProgressDlg.
Кажется, я знаю почему:если вы посмотрите на исходный код для ProgressDlg вы можете увидеть этот блок кода:
<InstallUISequence>
<Show Dialog="ProgressDlg" Before="ExecuteAction" />
</InstallUISequence>
Таким образом, вместо того, чтобы публиковаться другим диалогом, как это происходит с большинством диалогов, он запускается непосредственно как часть УстановитьUISequence.Так как мне это переопределить?
Решение
Похоже, что диалоговое окно прогресса должно быть последним в установке InstallureaquenceQuence перед ExecuteAction - в противном случае, поскольку диалоги прогресса без прогребания, это показано, что затем скрывается сразу.
Поэтому мое решение просто, чтобы убедиться, что мой пользовательский диалог прогресса показан после существующего:
<InstallUISequence>
<Show Dialog="CustomProgressDlg" After="ProgressDlg" />
</InstallUISequence>
Другие советы
@ Сэмюэль, это работает, как сказал Боб:«Пока вы не ссылаетесь на ProgressDlg», но это утверждение неточно.Вам нужно найти все ссылки на ProgressDlg, но найдите их в исходниках WiX.Затем вам нужно создать свою собственную версию любого диалога, который ссылается на ProgressDlg и включен в вашу установку (прямое или косвенное его использование!), чтобы он также ссылался на ваш настроенный диалог.
Я попробовал это, чтобы решить ту же проблему.Для использования, например.последовательности пользовательского интерфейса FeatureTree, вам придется создать свои собственные версии следующих диалогов в дополнение к ProgressDlg:
- Техническое обслуживаниеДобро пожаловатьDlg
- РезюмеDlg
- Добро пожаловатьDlg
Это связано с тем, что они определяют элемент Show, который ссылается на ProgressDlg.
ProgressDlg запланирован только тогда, когда вы ссылаетесь на него. Если вы хотите заменить его, настройте диалоговую последовательность не обратитесь к ProgressDlg.
@Klaus, к счастью, ты нет должны повторно создать свои собственные версии диалога с v3.11.1. в InstallUISequence
, вы можете переопределить последовательность диалогового окна, например,
<Show Dialog="WelcomeDlg" Before="ProgressDlgCustom">NOT Installed OR PATCH</Show>
Убедитесь, что вы опускаете Показать / @ переопределить - Это было точное состояние из Welcomedlg.