PDA

View Full Version : How to sequencing a rollback custom action in a merge module



WISeAgent
06-01-2004, 08:16 PM
Greetings,

I'm authoring a merge module using Installshield Developer 7.04 and I have written some CAs in the merge module. For each CA, I need a rollback CA to reverse the CA action in case of failure.

I have got no problem doing it in standard and basic msi projects, by simply sequencing the rollback CA infront of the CA to be rolled back.

But in a merge module, I don't have the control over the ordering of different CAs. In my case, all I can do it to place both CA and its rollback CA before "InstallFinalize", but I can't explicitly ordering rollback CA infront of the CA it's going to rollback.

I'd like to know:
1. can I have a rollback CA in a merge module and have anyone out there done it?
2. I'm expecting the answer for Q1 is yes, but how to do it and how do I know it can make sure the rollback CA is called when rollingback?

As an example, I've got a CA name CA_Notepad which will launch notepad.exe when called. It's rollback CA named CA_Rollback.

CA_Notepad: in-script execution is "deferred execution" of MSI type is 1058
CA_Rollback: in-script execution is "rollback execution" MSI type is 1314
both CA are placed before "InstallFinalize"

Regards,
WWang

_doog_
06-02-2004, 09:25 AM
go to the direct editor

tables ModuleInstallExecuteSequence and ModuleUIExecuteSequence

specify your ca there
field after: 1=after, 0=before
field baseaction is the action the field after refers to

WISeAgent
06-02-2004, 07:01 PM
G'Day _doog_,

I thought BaseAction can only be standard action. Thanks for helping me out again.

I realized how silly I was when gone back to MSDN and revisit the reference to ModuleInstallExecuteSequence Table agian. BaseAction column can contain a standard action, and custom action as well.


Regards,
WWang