没有 UI 组件条件不起作用



当我在没有ui的情况下进行更新时,wix中的组件出现了问题。

<Component Id="PrinterConfEnable" Guid="911F0032-A217-4B1F-B973-29DB6DC06952">
    <util:XmlFile Id="PrinterEnabled" Action="setValue" Permanent="yes" File="[INSTALLFOLDER]config.xml" ElementPath="/printer/enabled" Value="true" />
    <Condition>
        <![CDATA[ USE_PRINTER_VAL = "1" and USE_PRINTER_0_VAL = "1" ]]>
    </Condition>
</Component>
<Component Id="PrinterConfDisable" Guid="56AD5D4B-3700-44E1-9A0F-03E3A2A5D88F">
    <util:XmlFile Id="PrinterDisabled" Action="setValue" Permanent="yes" File="[INSTALLFOLDER]config.xml" ElementPath="/printer/enabled" Value="false" />
    <Condition>
        <![CDATA[ USE_PRINTER_VAL <> "1" or USE_PRINTER_0_VAL <> "1" ]]>
    </Condition>
</Component>

在更新属性USE_PRINTER_VAL和USE_PRINTER_0_VAL等于1的过程中,但在config.xml中,它已被写入

<printer> 
    <enabled>false</enabled>
</printer>

然而,当我用UI更新时,它可以正常工作。

假设这些值是在UI中设置的,并且"无UI更新"意味着功能更改或补丁(或类似的东西),那么:

您可能认为,一旦在UI中设置了属性值,它们就会保存在某个位置以供以后使用。除非保存,否则不会保存它们,因此它们将恢复为默认值。WiX有一个"记住属性"模式,您可以使用它来保存值,这样原始输入的值将被保存并恢复到其他服务活动中,如补丁、更新等。

http://robmensching.com/blog/posts/2010/5/2/the-wix-toolsets-remember-property-pattern/

即使它们被设置在某个地方,也需要将它们标记为安全的,以确保它们正确地传递到执行序列中。

最新更新