将RegisterValue设置为WiX中的默认值

时间:2012-04-16 19:05:15

标签: wix windows-installer

如果选择了某个功能,我想将寄存器值设置为特定字符串(true),或者如果未选择,则将其设置为默认值(false)。 我尝试了以下,但我似乎没有工作: - (

    <Component Id="ExampleFalseComponent">
        <Condition><![CDATA[Feature1 = "3" ]]></Condition>
        <RegistryValue Root="HKCU" Key="path" Name="examplevalue" Type="string" Value="false" KeyPath="yes"/>
    </Component>
    <Component Id="ExampleTrueComponent">
        <Condition><![CDATA[Feature1 < "3" ]]></Condition>
        <RegistryValue Root="HKCU" Key="path" Name="examplevalue" Type="string" Value="true" KeyPath="yes"/>
    </Component>
    <Feature Id="Feature1" Title="Some text string" Absent="allow" AllowAdvertise="no" InstallDefault="local" Display="collapse" Level="3">
        <ComponentRef Id="ExampleFalseComponent"/>
        <ComponentRef Id="ExampleTrueComponent"/>
    </Feature>

1 个答案:

答案 0 :(得分:2)

当你的条件评估为真时,我会在cost finalize之后使用在执行序列中调度的SetProperty元素将SomeProperty设置为“true”。然后在RegistryValue中使用[SomeProperty]。

另请注意,在首次安装期间,该功能将安装但尚未安装,在修复期间,您的功能将被安装但不会安装,因此请相应地写下您的情况。