基于FileSearchRef为ExePackage设置InstallCondition

时间:2013-07-27 15:45:07

标签: wix burn wix3.7

我有一个带有Exe1的链 - > Msi1-> Exe2-> Msi2。

我需要一个FileSearch结果来决定是否在其InstallCondition中安装了Exe2。

我在Bundle外面的Fragment中定义了FileSearch,我在Chain上面的Bundle中引用它。

如何确保在执行Msi1后完成FileSearch?

类似的问题使用RegistrySearch而不是FileSearch和一个MsiPackage: WiX Bundle bal:condition - util:RegistrySearch variable always false

更新 我已经从链中删除了Exe2,我试图在Msi1的延迟自定义操作中执行Exe2。 Exe2可以自行运行,但从自定义操作运行时会失败。需要深入挖掘

2 个答案:

答案 0 :(得分:2)

烧伤不起作用。它在链开始应用之前处理InstallCondition,因此在链中发生的任何事情都不会影响链的其余部分。

答案 1 :(得分:0)

就像Bob提到的那样,InstallCondition在链开始之前处理,而不是在链之间处理。

MSI1是否始终包含您要搜索的文件?而不是检查文件的存在,为什么不检查MSI1是否正确安装?如果是这种情况,您可以使用VITAL属性。

Vital YesNoType指定包是否必须成功才能继续链。默认的“是”表示如果包失败,则链将失败并回滚或停止。如果指定“no”,则即使包报告失败,链也将继续。

所以你的常规Burn BA不会支持,你可以写一个自定义的BA来处理这个或者把你的链断开到2,exe1和msi1以及第二个exe2 msi2。