如果选择了某个功能,我想将寄存器值设置为特定字符串(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>
答案 0 :(得分:2)
当你的条件评估为真时,我会在cost finalize之后使用在执行序列中调度的SetProperty元素将SomeProperty设置为“true”。然后在RegistryValue中使用[SomeProperty]。
另请注意,在首次安装期间,该功能将安装但尚未安装,在修复期间,您的功能将被安装但不会安装,因此请相应地写下您的情况。