在WIX中设置对话框和习惯的顺序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在WIX中设置对话框和习惯的顺序相关的知识,希望对你有一定的参考价值。
我正在Wix中编写一个安装程序,并且需要以下顺序,其中对话框和自定义操作的顺序是混合的。有两种情况。
第一种情况:用户安装软件进行试用:
- 欢迎(对话)
- 许可协议(对话)
- 在我的网站上注册安装(自定义操作),Web服务器响应新用户(试用期)。
- --
- --
- 完成安装(对话框)
第二种情况:用户已在试用期内使用该软件,并且必须键入完整安装的许可证代码。新步骤标有*。
- 欢迎(对话)
- 许可协议(对话)
- 在我的网站上注册安装(自定义操作),* Web服务器响应旧用户(需要许可证)。
- *类型许可证密钥(对话框)
- *验证Web服务器上的许可证密钥(自定义操作)。
- 完成安装(对话框)
这两种情况在第3步中Web服务器的响应方式不同。在接受许可条款后,第3步非常重要。
我没有运行对话框的问题,我可以运行自定义操作。但我无法弄清楚如何混合它们的序列。我一直在使用Nick Ramirez WIX Cookbook,但我看不出它涵盖了这个话题。
问题1:如何混合对话框和自定义操作的顺序?
问题2:如何使用自定义操作(步骤3)的结果在两个不同的对话框(步骤4或6)之间进行选择?
答案
经过一些试验和错误后,我找到了解决问题的方法:
<Property Id="INSTALL_WEB_RESPONSE" Value="NO" />
<UI Id="UIFlow">
<Publish Dialog="LicenseAgreementDlg" Control="Next" Event="DoAction" Value="CA_Licens">LicenseAccepted = "1"AND INSTALL_WEB_RESPONSE = "NO"</Publish>
<Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="MyCustomDlg">LicenseAccepted = "1" AND INSTALL_WEB_RESPONSE = "OVERSKREDET"</Publish>
<Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">LicenseAccepted = "1" AND INSTALL_WEB_RESPONSE = "GEMT"</Publish>
</UI>
在您接受许可协议(Control =“Next”)后,有三个选项。
首先,您要运行自定义操作“CS_Licens”,此操作会更改INSTALL_WEB_RESPONSE属性。根据INSTALL_WEB_RESPONSE属性的更改,安装程序会以某种方式跳回到“许可协议”对话框并选择新的下一个事件:
Event="NewDialog" Value="MyCustomDlg"
要么
Event="NewDialog" Value="VerifyReadyDlg"
换句话说:属性INSTALL_WEB_RESPONSE的值控制流,并且自定义操作根本不直接涉及流。
以上是关于在WIX中设置对话框和习惯的顺序的主要内容,如果未能解决你的问题,请参考以下文章