[英]Condition inside Feature ignores property value that is set in custom action
我有一个要根据属性值选择或取消选择的功能:
<Feature Id="featHAService" Title="!(loc.HAService)" AllowAdvertise="no" Level="1">
<Condition Level="3">
<![CDATA[PROP_IS_FIRST_INSTALLATION="0"]]>
</Condition>
</Feature>
在C#自定义操作中,在显示包含功能树的CustomizeSetup对话框之前,我根据一些逻辑设置了PROP_IS_FIRST_INSTALLATION,无论该值是0还是1,功能级别始终为1。出于调试目的,我停止了触发自定义操作,并且手动更改* .wxs文件中PROP_IS_FIRST_INSTALLATION的值,并且条件可以按预期工作。 知道为什么在自定义操作中更改它不起作用吗?
检查这些调用发生的顺序顺序,因为在CostFinalize操作期间将评估要素中的条件,因此您的自定义操作必须在CostFinalize之前。
https://msdn.microsoft.com/zh-CN/library/windows/desktop/aa368014(v=vs.85).aspx
在我看来,在这些情况下具有DoAction controlEvent更为常见。 对话事件可以对所需功能执行ADDLOCAL,而对另一个功能执行删除。 然后可以通过要安装的功能部件上的功能条件来触发自定义操作,例如&FeatureName = 3。 这里有一个例子:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.