繁体   English   中英

要素中的条件会忽略在自定义操作中设置的属性值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM