我在取消选中该复选框时尝试运行自定义操作(默认选中)。我已经读过这个话题了,在我看来情况也是如此。 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 "./Logs" /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”吗?我感谢任何帮助。谢谢。
答案 0 :(得分:2)
您可以使用以下代码。
您的代码中的问题是您尝试检查属性值零,这是未定义的。 你已经在你的代码中写了CheckBoxValue =&#34; 1&#34; ,如果选中则值为1,如果未选中则不会有值。
因此将条件写为<![CDATA[CHECKBOXPROP <> 1]]>
当值不为1时,将运行自定义操作。
您使用以下代码
<InstallExecuteSequence>
<Custom Action="DeleteAll" After="RemoveFiles"><![CDATA[CHECKBOXPROP <> 1]]></Custom>
</InstallExecuteSequence>