Wix 在新属性中组合特征和条件

Wix 在新属性中组合特征和条件,wix,Wix,我有一个Wix设置工具包,我有一些基于它们的功能,一些自定义对话框将被显示。有一些条件,我想结合他们在一个新的财产。例如: <Property Id="SERVERSETTINGSISNEEDED"> <![CDATA[(&Client = 3) OR (!Client = 3) OR (&CoreService = 3) OR (!CoreService = 3) OR (&ResourceService = 3) OR (!ResourceServi

我有一个Wix设置工具包,我有一些基于它们的功能,一些自定义对话框将被显示。有一些条件,我想结合他们在一个新的财产。例如:

<Property Id="SERVERSETTINGSISNEEDED">
<![CDATA[(&Client = 3) OR (!Client = 3) OR (&CoreService = 3) OR (!CoreService = 3) OR (&ResourceService = 3) OR (!ResourceService = 3)]]>
</Property>

然后:

<Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="ServersSettingsDlg" Order="1">SERVERSETTINGSISNEEDED</Publish>
需要服务器设置
但它不起作用,并且总是显示该对话框。
非常感谢您的帮助。

当您在WiX中使用
元素定义MSI属性时,它是在构建时构建的,并且在构建MSI包时,您最终在中拥有一条记录。另一方面,功能状态在运行时解析,也就是说,在安装软件包时解析

因此,您试图在构建时引用运行时值,这是不正确的。我确信可以解释为什么结果属性的计算结果为
true
,但这不是问题所在

据我所知,您希望缩短元素的条件部分,以避免多次复制/粘贴长字符串。如果是这种情况,您不必在这里涉及MSI属性-您可以通过WiX预处理器功能实现这一点

因此,请执行以下操作:

  • 将条件定义为预处理器变量:

  • 使用变量而不是条件:
$(需要var.serversetings)