PDA

View Full Version : Not able to read or get correct SUPPORTDIR value from custom action script



RameshRamaswamy
05-27-2012, 10:09 PM
Problem statement:

SUPPORTDIR returns always specific value, not returning the path of the location where support files are extracted.

Background:

We have to bundle our plugin component ( COM based - self registration component) and silverlight run time into single setup exe. So that our customer can download

single exe from our web server, and install both our plugin & silverlight runtime on thier desktop machines.

We had used earlier version of Installshiled script template to create a setup.exe [we bundled our plugin & silverlight runtime]. Now our requirement is to convert our

plugin components from 32 bit to 64 bit , and bundle with silverlight(x64).

We use Installshiled 2012 Spring to develop a install packages, Project that was created from earlier version of installshield is no longer useful to bundle 64 bit

components. So we created new project from template " Basic MSI", and added our plugins components. we added Silverlight runtime in the Supportfile ( under Behaviour

& Logic).

Created customaction called " installSilverlight" to install silverlight along with our plugin components. The issue we face here is,SUPPORTDIR always returns path

which we don't need ( we are not able to get a path via SUPPORTDIR where support files contents are extracted - [silverlight components] )


When we install final output setup.exe, it creates three directories under user profile's temp location
1. {1C27A0AC-6F9F-4254-B861-45594C7C0792}- [this folder contains silverlight runtime that we added in the Support file under Behaviour & Logic]
2. {6FE72AB2-A091-4D49-96C9-03ED70496F61}- [_ISMSIDEL, 0x0409, Project.msi, setup]
3. {A41DA084-8037-40A0-85C3-93E9348E1479} - [_isres_0x0409.dll,ISBEW64,ISBEWI64,ISBEWX64,IsConfig,ISRT.dll,Setup.inx,String1033]

When we try to construct file path using SUPPORTDIR from custom action , we always get "{A41DA084-8037-40A0-85C3-93E9348E1479}" as SUPPORTDIR value, not getting the

{1C27A0AC-6F9F-4254-B861-45594C7C0792} as SUPPORTDIR value where silverlight runtime is extracted.

What should we do, to get {1C27A0AC-6F9F-4254-B861-45594C7C0792} as a SUPPORTDIR value or are we missing anything important here?

For testing purpose we created almost 30 custom actions , inserted custom actions next to each standard actions. custom actions always returns "{A41DA084-8037-40A0-

85C3-93E9348E1479}" as a SUPPORTDIR value.

Alpesh
05-29-2012, 11:56 PM
Hi,

You need to use the MsiGetProperty function to get the value of SUPPORTDIR. If your custom action runs in the deferred mode, then you will have to use CustomActionData. Please refer to InstallShield in-built help for more information on CustomActionData.

RameshRamaswamy
05-31-2012, 05:12 AM
Thanks for giving useful info. Now we are able to read correct support directory value.

But SilverlightRuntime is not getting installed, we always get with error "1721 there is a problem with this windows installer".

Here is the details of our custom action details

In-Script Execution: Deferred Execution in System context
Install Exec Sequence : After Install files
Install Exec Condition : Not Installed

Are we missing anything important here?