如果在wix

时间:2016-05-02 13:40:25

标签: wix installer burn

我有一个链式安装,安装3 msis。如果其中一个Msi软件包安装失败,则之前的软件包安装将无法回滚。我已确保不更新DisableRollback和Vital等属性,其默认值分别为no和yes。我在所有具有Execute属性作为回滚的msis中都有一个特定的习惯。它适用于msi软件包失败,但之前安装的软件包没有回滚。我是否必须做任何特定的回滚才能工作?

<Chain>
    <MsiPackage Id="1".../>
    <MsiPackage Id="2".../>
    <MsiPackage Id="3".../>
</Chain>

编辑:我现在意识到每个软件包的Permanent属性都设置为yes。一旦我将其设置为“否”,它就会卸载它没有执行的组件。这让我质疑,永久属性有什么意义。我确实看到了wixtoolset文档,但我不明白的是Permanent,Vital和DisableRollback属性是如何工作的。保持问题可以回答这些问题。

1 个答案:

答案 0 :(得分:0)

使用RollbackBoundary并将其放在Chain所需的位置。

<Chain>
    <RollbackBoundary />
    <MsiPackage Id="1".../>
    <MsiPackage Id="2".../>
    <MsiPackage Id="3".../>
</Chain>
相关问题