Вопрос

Я пытаюсь настроить стандартный диалог прогресса 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top