Reputation: 93
I am creating an msi installation package using InstallShield.
I have a custom action to install a third party exe. This exe has an UI, it prompts the user to click "Yes" or "No". If the user clicks No, that exe is not installed but the msi installation continues. I want to end the msi installation as soon as the user interrupts the installation of third party exe.
In either cases (Whether the user clicks Yes or No) return value is 1. So i am stuck.
Could you help me on this.
Upvotes: 1
Views: 1035
Reputation: 521
Install you third party exe as a prerequisite. InstallShield allows you to define your own prerequites and the InstallShield's bootstrapper is able to work with prerequisites.
Upvotes: 0
Reputation: 20780
If this is a dependency, don't install it with a custom action. That's what the seup.exe type of bootstrapper is for. They install required prerequisites (like .NET Frameworks and C++ runtimes) then launch your MSI install.
Another reason for not using a custom action is to do with where you put the custom to install this 3rd party exe. If you put it in your UI sequence then you cannot do a silent install of your MSI (because the UI sequence is suppressed) and if you put it in the execute sequence it will fail if it MSI based because you cannot have recursive MSI installs (yours calling another).
Upvotes: 1
Reputation: 55571
Does the EXE accept any command line parameters to make it silent? In general this is a bad thing to do because:
1) The EXE can fail and give the impression your installer failed.
2) Can fail and swallow the error.
3) Doesn't log to your MSI log and may not log at all.
4) MSI isn't aware of the changes made by the EXE and therefore doesn't support Rollback, Resilency, Uninstall
The list goes on and on.
Upvotes: 0