View Full Version : Help! Deferred Execution Custom Action

03-07-2008, 08:33 AM
I want a custom property that's set in the user interface section, then used later during the installation. I know I have to make use of CustomActionData, but that requires manually altering several tables in the MSI (I have Orca to do that).

My script runs fine during the UI section, and sets a property called IS_UPGRADE. I've put this Custom Action (called PreExistingData1) "After Database Folder dialog". I've added the property to the Property table, and also included it in SecureCustomProperties (ISACTIONPROP1;IS_UPGRADE) within the same table.

Now comes the hard part. What I want to do is called Deferred Execution Custom Action (kb: Q104413). Since the Custom Action Wizard isn't available in Express, I have to add records to 2 other tables manually (so I'm told): CustomAction and InstallExecuteSequence. Nothing I've tried so far works. When I run the Custom Action later (called PreExistingData2) "After File Transfer", I can't get that property, nor any other I need.

Here's what I've tried:
Added record to CustomAction table:
Action: MakeIS_UPGRADEAvailable
Type: 51
Source: PreExistingData1
Target: [IS_UPGRADE];[INSTALLDIR];[ProductVersion]
(I need the other 2 properties as well)
Added record to InstallExecuteSequence:
Action: PreExistingData1
Sequence: 412
(LaunchConditions is 410, another item is 411)

When PreExistingData2 is run, I have these lines:
PropArray = Split(Session.Property("CustomActionData"), ";")
strIS_UPGRADE = PropArray(0)
strInstallDir = PropArray(1)
strVer1 = PropArray(2)
[code end]

All 3 variables come up empty, and it doesn't error (both Custom Actions are set: Ignore Exit Code = No).

How do I get those values available?

03-07-2008, 08:54 AM
(Duplicate post; follow up here (http://community.installshield.com/showthread.php?t=178457)...)