This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Custom Action - New EXE
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
Jan 13, 2011
03:16 PM
Custom Action - New EXE
Hi,
In a MSI(abc.msi), I'm using a custom action for calling an EXE(xyz.exe).
Following are the properties i set for the custom action:
Return Processing : Asynchronous(waits) , In-Script Execution :Immediate Execution , Execution Scheduling : Always Execute, Install UI Seq : After Cost Finalize , Install UI Condition:Not Installed.
Here when i unistall abc.msi, as per my requirement, i'm not uninstalling the xyz.exe. Now when i try to install the abc.msi again on the same box, xyz.exe while take to the maintainence dialog.
How can i put a condition to skip the xyz.exe calling custom action, if xyz is already installed. XYZ is basically an external installer which has product code, version and all.
Please advise.
In a MSI(abc.msi), I'm using a custom action for calling an EXE(xyz.exe).
Following are the properties i set for the custom action:
Return Processing : Asynchronous(waits) , In-Script Execution :Immediate Execution , Execution Scheduling : Always Execute, Install UI Seq : After Cost Finalize , Install UI Condition:Not Installed.
Here when i unistall abc.msi, as per my requirement, i'm not uninstalling the xyz.exe. Now when i try to install the abc.msi again on the same box, xyz.exe while take to the maintainence dialog.
How can i put a condition to skip the xyz.exe calling custom action, if xyz is already installed. XYZ is basically an external installer which has product code, version and all.
Please advise.
(1) Reply
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
Jan 14, 2011
05:22 AM
First a little tip. If you plan to use an MSI to install another executable and repackaging is not an option(convert that exe to an MSI), then I advise you to install it as a prerequisite using InstallShields prerequisite editor.
Now to answer your question. In order to check if your app is installed you need to do a system search (happens earlier in the sequence than your custom action) wherein you check for a file or a registry value that always is there if your application is installed. This stores the path of the value in a property which you get to set in the last step of the system search dialog. Use a PUBLIC property, say SEARCHFORAPPNAME. Make sure this property is not in your property manager or if it is it has an empty value.
You then have a property which you can add to your current condition making it: If Not Installed AND Not SEARCHFORAPPNAME.
This will work, but I'd go for the repackaged solution or the prerequisite solution.
Walt
Now to answer your question. In order to check if your app is installed you need to do a system search (happens earlier in the sequence than your custom action) wherein you check for a file or a registry value that always is there if your application is installed. This stores the path of the value in a property which you get to set in the last step of the system search dialog. Use a PUBLIC property, say SEARCHFORAPPNAME. Make sure this property is not in your property manager or if it is it has an empty value.
You then have a property which you can add to your current condition making it: If Not Installed AND Not SEARCHFORAPPNAME.
This will work, but I'd go for the repackaged solution or the prerequisite solution.
Walt
![](/skins/images/CC38E504FC9E1309DC48ACFEB4925670/responsive_peak/images/icon_anonymous_message.png)