Reputation: 21
I am working in installshield 2012 spring express edition. I have created exe custom action which call exe developed in vb.net, that exe has cancel button in it. If user Clicks on cancel button error box pops up in installshield setup (error code 1722) I know why this error is coming but i don't want user to see this error and want to cancel the installation without showing error message to user.
Tell me if anyone need more detail.
Upvotes: 2
Views: 1823
Reputation: 55620
There's a number of things at play here:
Don't use EXE custom actions. They run out of process and don't have access to the MSI handle and have a variety of other failure points. See: Integration Hurdles for EXE Custom Actions
Use WiX DTF instead to write a managed code custom action that is presented to the windows installer as a standard C++ Win32 DLL. See: WiX and DTF: Using a Custom Action to list available web sites on IIS
Your Custom action shouldn't present any UI at all. It should be publishing messages up to windows installer to be displayed on the progress dailog. If your custom action is prompting the user for information, this is wrong also. It should have done that in the UI Sequence during the user interview stage of the installation.
As you pass messages to the progress dialog, MSI will give you a return code that indicates the user has pressed the cancel button. You should then use this button to interrupt the processing in your custom action. Windows Installer will then rollback and display the Setup Interupted dialog. See: Any tips on getting the cancel button working for a deferred custom action
InstallShield Express is a very limited tool and may not be able to directly do all the authoring you need it to do. There are ways to extend it. See: Augmenting InstallShield using Windows Installer XML - Certificates
What I've shown you is the correct and proper way to do it. Anything else is suboptimal from an MSI best practices perspective.
Upvotes: 2