проблема с неуловимым установщиком wix и диалоговым окном AdvancedWelcomeEulaDlg

Я создаю установщик WiX типа WixUI_FeatureTree, но у меня возникла небольшая проблема, когда AdvancedWelcomeEulaDlg всплывает дважды, даже после того, как я согласился с лицензией.

Процесс прост, с дополнительным диалоговым окном, которое отображается перед AdvancedWelcomeEulaDlg (это дополнительная страница соглашения о согласии).

Поток следующий: WelcomeDlg --> CustomEulaDlg --> AdvancedWelcomeEulaDlg, и у меня есть возможность выбрать CustomizeDlg (Дополнительно) или VerifyReadyDlg (Установить).

  <Publish Dialog="CustomEulaDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>
  <Publish Dialog="CustomEulaDlg" Control="Next" Event="NewDialog" Value="AdvancedWelcomeEulaDlg">1</Publish>      

  <Publish Dialog="AdvancedWelcomeEulaDlg" Control="Advanced" Event="NewDialog" Value="CustomizeDlg">1</Publish>
  <Publish Dialog="AdvancedWelcomeEulaDlg" Control="Install" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>

  <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="AdvancedWelcomeEulaDlg" Order="1">1</Publish>
  <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="ServiceAccountDlg" Order="2">NOT Installed OR WixUI_InstallMode = "Change"</Publish>
  <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="3">Installed</Publish>

Как только я перехожу на страницу AdvancedWelcomeEulaDlg и нажимаю кнопку «Согласен», я хочу, чтобы установленная программа продолжила установку, а не появлялась снова. Я что-то не утверждаю? Возможно, я пропустил шаг в своем VerifyReadyDlg.

Любая помощь будет оценена по достоинству. WiX немного запутан.

ИЗМЕНИТЬ:

Action 14:00:23: EulaDlg. Dialog created
MSI (c) (A4:5C) [14:00:23:760]: PROPERTY CHANGE: Adding EULACHECK property. Its value is '1'.
Action 14:00:24: AdvancedWelcomeEulaDlg. Dialog created
MSI (c) (A4:5C) [14:00:25:019]: PROPERTY CHANGE: Adding LicenseAccepted property. Its value is '1'.
Action ended 14:00:25: WelcomeDlg. Return value 1.
MSI (c) (A4:B8) [14:00:25:645]: Doing action: AdvancedWelcomeEulaDlg
Action 14:00:25: AdvancedWelcomeEulaDlg. 
Action start 14:00:25: AdvancedWelcomeEulaDlg.
Action 14:00:25: AdvancedWelcomeEulaDlg. Dialog created
Action ended 14:00:26: AdvancedWelcomeEulaDlg. Return value 1.
MSI (c) (A4:B8) [14:00:26:336]: Skipping action: MaintenanceWelcomeDlg (condition is false)
MSI (c) (A4:B8) [14:00:26:336]: Skipping action: ResumeDlg (condition is false)
MSI (c) (A4:B8) [14:00:26:336]: Doing action: ProgressDlg
Action 14:00:26: ProgressDlg. 
Action start 14:00:26: ProgressDlg.
Action 14:00:26: ProgressDlg. Dialog created
Action ended 14:00:26: ProgressDlg. Return value 1.
MSI (c) (A4:B8) [14:00:26:362]: Doing action: ExecuteAction
Action 14:00:26: ExecuteAction. 
Action start 14:00:26: ExecuteAction.

person Sash    schedule 07.04.2015    source источник
comment
Вероятно, проще отлаживать происходящее, просматривая таблицу ControlEvent готового MSI. В таблице диалогов есть два диалога AdvancedWelcomeEulaDlg?   -  person jbudreau    schedule 07.04.2015
comment
@jbudreau спасибо за предложение, я проверил журнал установки, и, похоже, он создает AdvancedWelcomeEulaDlg (см. мое редактирование). p.s. есть только 1 AdvancedWelcomeEulaDlg, но прежде чем это будет пользовательский диалог, который я вызываю EulaDlg, который отображается перед AdvancedWelcomeEulaDlg   -  person Sash    schedule 08.04.2015


Ответы (1)


Это старо, но я добавляю это на случай, если кто-то еще столкнется с этим.

Я пытался показать WelcomeDlg перед AdvancedWelcomeEulaDlg, но добавление NewDialog к вызову публикации заставляло его появляться дважды. По завершении диалогового окна приветствия расширенное лицензионное соглашение с конечным пользователем отображается только один раз.

<!--This is after copying the WixUI_UIAdvanced.wxs and modifying-->

<!--Publish action added to close WelcomeDlg on Next rather than NewDialog the EULA-->
<Publish Dialog="WelcomeDlg" Control="Next" Event="EndDialog" Value="Ignore">NOT Installed</Publish>

<!-- ... -->

<InstallUISequence>
    <!--Adding the 1 condition, makes it show even when not in maintenance-->
    <Show Dialog="WelcomeDlg" After="MigrateFeatureStates" >1</Show>
</InstallUISequence>

Я все еще чувствую WiX/MSI, но, глядя на источник, похоже, поскольку они вызывают шоу до ProgressDlg, приветствие не должно его открывать.

<InstallUISequence>
    <Show Dialog="AdvancedWelcomeEulaDlg" Before="ProgressDlg">NOT Installed</Show>
</InstallUISequence>
person ataboo    schedule 17.02.2021