在WIX中设置对话框和习惯的顺序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在WIX中设置对话框和习惯的顺序相关的知识,希望对你有一定的参考价值。

我正在Wix中编写一个安装程序,并且需要以下顺序,其中对话框和自定义操作的顺序是混合的。有两种情况。

第一种情况:用户安装软件进行试用:

  1. 欢迎(对话)
  2. 许可协议(对话)
  3. 在我的网站上注册安装(自定义操作),Web服务器响应新用户(试用期)。
  4. --
  5. --
  6. 完成安装(对话框)

第二种情况:用户已在试用期内使用该软件,并且必须键入完整安装的许可证代码。新步骤标有*。

  1. 欢迎(对话)
  2. 许可协议(对话)
  3. 在我的网站上注册安装(自定义操作),* Web服务器响应旧用户(需要许可证)。
  4. *类型许可证密钥(对话框)
  5. *验证Web服务器上的许可证密钥(自定义操作)。
  6. 完成安装(对话框)

这两种情况在第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中设置对话框和习惯的顺序的主要内容,如果未能解决你的问题,请参考以下文章

如何在日期选择器对话框中设置日期限制

如何在 Wix 中设置 MSMQ 队列创建的用户权限

如何使用更新条件在 Wix 中设置变量?

在片段中设置文本颜色

从底部工作表对话框片段中获取价值

vscode中设置vue代码片段