我正在用Wix编写安装程序,并希望按照以下顺序将对话框的顺序和自定义操作混合在一起。有两种情况。
第一种情况:用户安装软件进行试用:
第二种情况:用户已经在试用期内使用了该软件,并且必须键入许可证代码才能进行完全安装。新步骤标有*。
两种情况的不同之处在于Web服务器在步骤3中的响应方式。重要的是,步骤3必须在接受许可条款之后进行。
运行对话框没有问题,我可以运行自定义操作。但是我不知道如何混合它们的顺序。我一直在使用Nick Ramirez WIX Cookbook,但看不到它涵盖了这个主题。
问题1:如何混合对话框和自定义操作的顺序?
问题2:如何使用“自定义”操作的结果(步骤3)在两个不同的对话框(步骤4或6)之间进行选择?
答案 0 :(得分:0)
经过反复试验,我找到了解决问题的方法:
<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的值控制该流程,并且自定义操作完全不(直接)参与该流程。