当我在没有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更新时,它可以正常工作
答案 0 :(得分:0)
假设这些值是在UI中设置的,并且&#34;更新时没有UI&#34;表示功能更改或补丁(或类似的东西)然后:
您可能假设一旦在UI中设置了属性值,就会将它们保存在某个地方供以后使用。除非您保存它们,否则它们不会保存,因此它们将恢复为默认值。 WiX有一个'#34;记得属性&#34;您可以使用模式保存值,以便最初输入的值将保存并恢复到其他服务活动,如补丁,更新等。
http://robmensching.com/blog/posts/2010/5/2/the-wix-toolsets-remember-property-pattern/
即使将它们设置在某处,也需要将它们标记为安全,以确保它们正确地传递到执行序列中。