WIX属性没有从WXI(<control>)持久化到WXS(<installexecutesequence>)</installexecutesequence> </control>

时间:2010-08-28 16:23:21

标签: wix wix3

我希望你能帮我解决以下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"
    />
...

1 个答案:

答案 0 :(得分:1)

您已定义公共财产但未使其安全。如果您作为管理员使用Windows XP,那么如果您使用Windows XP作为执行广告/托管/提升安装的标准用户,或者在启用了UAC的Windows Vista上,它将无法工作,因为您还必须添加安全属性到属性将其标记为SecureCustomProperty。

SecureCustomProperties Property