当复选框被选中/取消选中时,wix会运行自定义操作

时间:2014-10-24 04:45:11

标签: checkbox properties wix

我在取消选中该复选框时尝试运行自定义操作(默认选中)。我已经读过这个话题了,在我看来情况也是如此。 WiX. Run a custom action when a checkbox is checked

也许,在卸载期间打开对话框很重要。因此,问题是如果取消选中该复选框,则不会更改属性。

  <Control Id="LeaveFiles"
         Type="CheckBox"
         Height="18"
         Width="295"
         X="26" Y="58"
         Text="Not to delete custom files"
         Property="CHECKBOXPROP"
         CheckBoxValue="1" />

这是我在Product.wxs中的道具和自定义动作

<Property Id="CHECKBOXPROP" Secure="yes">1</Property>

<CustomAction Id="DeleteAll" Directory="APPLICATIONROOTDIRECTORY" ExeCommand="cmd /C RD &quot;./Logs&quot; /s /q"
              Execute="deferred" Return="ignore" HideTarget="no" Impersonate="no" />

<InstallExecuteSequence>
  <Custom Action="DeleteAll" After="RemoveFiles">CHECKBOXPROP=0</Custom>
</InstallExecuteSequence>

我对InstallExecuteSequence有疑问 - 我应该写CHECKBOXPROP = 0 AND REMOVE =“ALL”吗?我感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分:2)

您可以使用以下代码。

您的代码中的问题是您尝试检查属性值零,这是未定义的。 你已经在你的代码中写了CheckBoxValue =&#34; 1&#34; ,如果选中则值为1,如果未选中则不会有值。

因此将条件写为<![CDATA[CHECKBOXPROP <> 1]]>当值不为1时,将运行自定义操作。

您使用以下代码

<InstallExecuteSequence>
          <Custom Action="DeleteAll" After="RemoveFiles"><![CDATA[CHECKBOXPROP <> 1]]></Custom>
</InstallExecuteSequence>