I need to change the INSTALLDIR directory in a custom action. I am using Installshield 11.5

Hi,
 I am using Installshield 11.5 professional.
I have a project that creates different type of packages. Not all the packages install on the same directory, so I have a 'Custom Action' that changes INSTALLDIR according to the Release Flag variable.
I had no problems so far but no the story is a little bit different.  I had a release flag that was used to create a package and I added another release flag for that package.  The condition used in the custom action "Install UI Condition" was ISReleaseFlags="Runtime".  By leaving that condition now the custom action doesn't work anymore.  I added a subfeature (release flag 'tools') to the main feature (release flag 'Runtime').
I though it was because I added another release flag to that package.  So i tried
   ISReleaseFlags="Runtime" OR ISReleaseFlags="tools"
I also tried
   ISReleaseFlags="Runtime" AND ISReleaseFlags="tools"
None of them work.  I ran the package in debug mode and all the msi is reporting is that the the condition is false.
'MSI (c) (78:60) [15:23:25:836]: Skipping action: SetInstalldir (condition is false)'
I tried to open the package with ORCA and I can see that the Property table has the ISReleaseFlags variable with my 2 release flag, so..
What Am I missing here?  It should work.
Thanks
atoncelliAsked:
Who is Participating?
 
numansiddiqueConnect With a Mentor Commented:
There is one installscript API called SeFeatureTarget. You can use this to change the INSTALLDIR value at the run time using the installscript.
You can use this function as SetFeatureTarget("INSTALLDIR","D:\\TEMP");

I am not sure about the function name. You can check the function name or related function in the help.

You can create a  custom action which calls the script file. In the script file you can check for the condition of the flag and set the INSTALLDIR accordingly.
This could be one solution
0
 
Daniel Van Der WerkenIndependent ConsultantCommented:
Should you be using:

ISReleaseFlags == "Runtime" instead of ISReleaseFlags = "Runtime"?

I think so.
0
 
atoncelliAuthor Commented:
I have applied the condition by manual.  I tried just to see what it would do and it doesn't let use it.  It says 'An invalid condition statement was supplied"
Any other suggestions?
0
 
atoncelliAuthor Commented:
This solution is not Microsoft compliance I think because it requires the creation of a script.  There should be a way to do this from InstallShield.
Thanks anyway for the suggestion.
0
All Courses

From novice to tech pro — start learning today.