首页 > 解决方案 > WIX:属性值不会从发布元素更改

问题描述

我创建了以下属性:

<Property Id="InstallationType" Value="InstallComplete" ></Property> 

我尝试根据在 UI 中单击的执行按钮更改此属性值:

<Control Id="TypicalButton" Type="PushButton" X="40" Y="65" Width="100" Height="37" ToolTip="!(loc.SetupTypeDlgTypicalButtonTooltip)" Default="yes" Text="!(loc.SetupTypeDlgTypicalButton)" IconSize="48" Property="InstallationType">
   <Publish Property="WixUI_InstallMode" Value="InstallTypical">1</Publish>
   <Publish Property="InstallationType" Value="InstallTypical" >1</Publish>
   <Publish Event="SetInstallLevel" Value="1">1</Publish>
</Control>

然后包含一个特性取决于属性值:

<Feature Id="test" Title="test" Level="0" >
  <ComponentGroupRef Id="CompilationHeadset" />
  <Condition Level="1">InstallationType="InstallTypical"</Condition>
</Feature>

问题是,当我单击“典型按钮”时,它不包含该功能,因此我理解条件为假,因为属性值没有按应有的方式更改。

我做错了什么?

标签: deploymentwixwix3.7

解决方案


Bob Arnson 在他的博文Feature conditions and UI中彻底回答了这个问题。TLDR:发布ADDLOCAL 和 REMOVE 事件而不是设置属性以试图影响已评估的Feature/Condition 。


推荐阅读