Rollback boundaries
Let's say you've included three MSIs in your install chain. The user launches the bootstrapper, the first two MSIs install successfully but the third fails. You may decide to keep the first two but roll back only the third. By default, all three will roll back. Use
RollbackBoundary
elements to create checkpoints past which the install won't roll back. The following is an example:
<Chain>
<MsiPackage... />
<MsiPackage ... />
<RollbackBoundary />
<MsiPackage... />
</Chain>
If the third MSI package fails, only it will be rolled back. The first two packages will remain installed. Another scenario is to roll back a failed install and then skip past it to the next rollback boundary. In the next example, if the second MSI fails, it will skip forward to the next RollbackBoundary
and continue. The key is to add the Vital
attribute on a RollbackBoundary
element, set to no
, that precedes the MsiPackage
element:
<Chain> <MsiPackage...