How do you set "InstallShield Prerequisites Location"?

350 views Asked by At

I'm using InstallShield 2014 Pro and the C# automation to handle builds via TFS. I can configure it to build as a setup.exe and extract the prereqs from setup.exe through the GUI but when I do it via code, it never sets the "InstallShield Prerequisites Location". I'm fine with it being "Extract from Setup.exe" or "Follow Individual Selections". It always defaults to "Copy From Source Media" even though its a web media format....

Here's the settings I set for the newly created release:

m_Release.Compressed = true;
m_Release.MediaType = 4;
m_Release.SetupEXE = true;
m_Release.MSIEngineLocation = ISWiEngineLocation.eelSetupExe;
m_Release.MsiEngineVersion = ISWiMSIEngineVersion.eev31;
m_Release.DotNetVersion = ISWiDotNetVersion.env11;
m_Release.DotNetFrameworkLocation = ISWiDotNetFrameworkLocation.dnlSetupExe;
m_Release.WebType = ISWiWebType.ewtOneExe;
m_Release.DelayMSIEngineReboot = false;

Unless I'm missing it, there is no option for this in the help: http://helpnet.installshield.com/installshield21helplib/installshield21helplib.htm.

I believe I've at least narrowed it down to the ISSetupPrerequisiteLocation in ISRelease (in the Direct Editor). It should be 1 but defaults to 0. How to change it is still eluding me.

BTW, I have triple checked that all prereqs are set to extract from setup.exe.

1

There are 1 answers

0
JasonAUnrein On BEST ANSWER

As far as I can find, you cannot set this value through the api.

You can manually edit the xml or binary .ism file to set it but who wants to go through that trouble. The easiest fix that I went with was to always reuse a release that has the field set. We were originally creating a new release in install shield and thus needed to set the field. Since the file is version controlled/tagged, its no big deal to go back to the older releases.