我希望你能帮我解决以下WIX问题:
在我的main.wxs中,我初始化了“MYPROPERTY”,然后在ui.wxi中,我打开了一个带有复选框的对话框(从我在.wxs中设置的MYPROPERTY检查/启用)。我可以通过取消选中该复选框来验证它是否会翻转该值,因为我根据MYPROPERTY值启用/禁用“下一步”按钮 - 我有多个复选框BTW。
问题是,如果在运行.msi时取消选中UI中的复选框,则无论是选中还是取消选中复选框,都会运行自定义操作(就好像“MYPROPERTY”始终为1,请参阅条件in)。如何设置将MYPROPERTY值设置为实际持久保存到自定义操作的复选框?
感谢任何帮助。感谢。
MAIN.WXS:
<Property Id='MYPROPERTY'>1</Property>
<?include ./ui.wxi ?>
...
<InstallExecuteSequence>
<Custom Action="MyCustomAction" After="InstallFiles">
(NOT Installed) AND (MYPROPERTY = 1)
</Custom>
...
ui.wxi:
<UI Id='xxx'>
...
<Dialog
Id="Choose"
Title="My Setup">
<Control
Id="MyCheckBox"
Type="CheckBox"
CheckBoxValue="1"
Property="MYPROPERTY"
/>
...
答案 0 :(得分:1)
您已定义公共财产但未使其安全。如果您作为管理员使用Windows XP,那么如果您使用Windows XP作为执行广告/托管/提升安装的标准用户,或者在启用了UAC的Windows Vista上,它将无法工作,因为您还必须添加安全属性到属性将其标记为SecureCustomProperty。