我正在构建一个WixUI_FeatureTree类型的WiX安装程序,但是我有一个轻微的问题,即使在我同意许可后,AdvancedWelcomeEulaDlg会弹出两次。
流程很简单,在AdvancedWelcomeEulaDlg之前显示了一个额外的对话框(这是一个额外的同意协议页面)。
流程是:WelcomeDlg - > CustomEulaDlg - > AdvancedWelcomeEulaDlg,我可以选择CustomizeDlg(Advanced)或VerifyReadyDlg(Install)。
<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.
答案 0 :(得分:0)
这是旧的,但我会添加它以防其他人遇到它。
我一直在尝试在 WelcomeDlg
之前显示 AdvancedWelcomeEulaDlg
,但是将 NewDialog
添加到发布调用会使其出现两次。结束欢迎对话框后,高级 EULA 只会出现一次。
<!--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 有感觉,但从 the source 来看,似乎因为他们在 ProgressDlg
之前打电话给节目,欢迎不应该打开它。< /p>
<InstallUISequence>
<Show Dialog="AdvancedWelcomeEulaDlg" Before="ProgressDlg">NOT Installed</Show>
</InstallUISequence>