views:

320

answers:

1

I have a Installshield Basic MSI project. This project uses Installshield's bootstrapper to install several setup prerequisites. Everything is bundled and compressed inside a single exe (Setup.exe). I have one prerequisite that needs to know the the full path of the file to execute. Is there a property available to find this path?

Or another solution. We are using Installshield 2008 with not much chance of upgrading at the moment. I am needing to install SQL Server 2008 which is dependent upon Windows Installer 4.5. Installshield 2008 doesn't have support for WinInstaller 4.5 so I created prerequisites for it for WinXp and Vista. I have WinXP working correctly.

However Windows Vista, the redistributable for Windows Installer 4.5 is a .msu file and needs to be executed through wsua.exe. I created a small app that just accepts the commandline params and kicks off wusa.exe with params to install the Windows Installer redistributable. However wusa.exe needs the full path to the redistributable. Is there a way to find the path to where setup.exe extracted the files?

Or is there a way to add support for Windows Installer 4.5 to Installshield 2008, doubt it, but it would be easiest

+1  A: 

For your alternate approach with IS2008, you should be able to do this in your helper exe. Assuming you're using C++, you can call GetModuleFileName() to find the location of your running exe (other languages should expose similar functionality somewhere). Since all the prerequisite's files will have been extracted to the same folder, you can use this to figure out the full path for the .msu file as well.

Upgrading will get you direct support (as well as included prerequisites for Windows Installer 4.5) as IS2009 and later prerequisites shell execute their target, supporting .msu files natively. IS2009 and later also have support for a prerequisite command-line property which you could use to locate your prerequisite files; see the InstallShield 2009 Release Notes and search for ISPREREQDIR.

Michael Urman
Thanks! Looks like upgrading is the best solution for me and management has since decided to buy the upgrade.
Web