Wix 工具集,许可协议后跳过选择

问题描述 投票:0回答:1

我在 Wix3.11 中进行了一个小型安装,其想法是运行欢迎对话框,然后运行许可证,然后准备就绪。 使用以下代码,我可以从“欢迎”对话框转到“就绪”对话框并返回,但无法将“许可证”对话框设置为直接转到“就绪”对话框。 它只是被忽视了。我检查了拼写,应该是正确的。

我可以从“许可证”转到“就绪”对话框吗? 奇怪的是,回去并不是问题

我的代码:

<WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
<WixVariable Id="WixUISupportPerUser" Value="0" />
<UI Id="MyWixUI_Mondo">      
  <UIRef Id="WixUI_Mondo" />

  <!-- this will work -->
  <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" >1</Publish>
  <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" >1</Publish>

  <!-- this will not have any affect -->
  <Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="2">
    LicenseAccepted = "1"</Publish>
  <!-- however, going "back" works, but not with the previous line included: -->
  <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="LicenseAgreementDlg" >1</Publish>

我查看了 WixUI_Mondo.wxs,我发现:

<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="LicenseAgreementDlg">
  NOT Installed AND NOT PATCH</Publish>
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">
  Installed AND PATCH</Publish>

<Publish Dialog="LicenseAgreementDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>
<Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="SetupTypeDlg" Order="2">
  LicenseAccepted = "1"</Publish>

考虑到这一点,我认为我做得对,但无法改变。

wix
1个回答
0
投票

也许问题出在代码中该字符串的冲突

<Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="2">
    LicenseAccepted = "1"</Publish>

还有 WixUI_Mondo 中的那个(在您的代码中引用)

<Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="SetupTypeDlg" Order="2">
  LicenseAccepted = "1"</Publish>

尝试将代码中的 Order="2" 更改为 Order="1"。

但就您而言,最好自己编写所有 Publish 元素,而不引用 WixUI_Mondo。使用 WixUI_Mondo.wxs 文件作为示例。

© www.soinside.com 2019 - 2024. All rights reserved.