cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

calling external exe file after successful installation

Dear all

I modified a msi Package to met our firm requirements and created a new custom action to call a new .exe File

now my question is the following:

how can time this external call after the installation of the msi is completely finished?

thanks for your help

kind regards

E.Altherr
(6) Replies
You may try setting the sequence after installFinalize...
soorajganga wrote:
You may try setting the sequence after installFinalize...


Hi soorajganga

thanks for the hint but it dosen't work.. if i set "Install Exec Sequence" to "After InstallFinalize" and "Return Processing" to "Sychronous (ignore exit code") i ran into a endless loop, which means, after installation of the msi package the exe will be called endless and dosen't stop (i have to break the process manual via the "Cancel" Button) it tried also the option "Asychronous(no wait for completion") but this produces the error "there is another installation running please wait... blaba blaba and the installation will be interrupted

any idea how to set this correctly?

thanks

E.Altherr
I think you can call the custom action from the Setup Complete Success dialog's Finish click event. In that button press, you can call the custom action and check the condition "(ProgressType2="installed" And ((ACTION<>"INSTALL") OR (NOT ISENABLEDWUSFINISHDIALOG) OR (ISENABLEDWUSFINISHDIALOG And Installed))).

Try this one 😉
manumanimala wrote:
I think you can call the custom action from the Setup Complete Success dialog's Finish click event. In that button press, you can call the custom action and check the condition "(ProgressType2="installed" And ((ACTION<>"INSTALL") OR (NOT ISENABLEDWUSFINISHDIALOG) OR (ISENABLEDWUSFINISHDIALOG And Installed))).

Try this one 😉


Hi Manumanimala

Thanks for your help, but this dosen't work also, nothing happend if i call the "Custom Action" via the Dialog "SetupCompleteSuccess"
, i'll search over and i'm shure to find a solution
Hi,

It sounds like the EXE that you are calling is actually launching another MSI installation. MSI will not allow an installation to start while another is running in its execute sequence. So the issue may be a race condition, where the child EXE is attempting to run an MSI package before the original setup has had a chance to terminate completely.

To test that your Custom Action is configured properly, you may want to consider configuring it to run a simple program like Notepad. If that runs, and the parent MSI process terminates, then the problem is probably as I've described above. The solution to that scenario would require writing some stub code in an exe that will wait for the parent MSI process to end properly before even considering starting the second installation. I unfortunately don't have a sample, but possibly someone on this community who has solved this same problem does...and is willing to share. 🙂

On a side note, if the child installation is one that you have to *always* install, you may want to consider using the setup-prerequisite feature in the InstallShield Editor. The limitation of this feature is that you can't conditionalize the child installation based on some selection in the parent installation because setup prerequisites are installed before the main install is executed.

Regards
David Thornley
David Thornley wrote:
Hi,

It sounds like the EXE that you are calling is actually launching another MSI installation. MSI will not allow an installation to start while another is running in its execute sequence. So the issue may be a race condition, where the child EXE is attempting to run an MSI package before the original setup has had a chance to terminate completely.

To test that your Custom Action is configured properly, you may want to consider configuring it to run a simple program like Notepad. If that runs, and the parent MSI process terminates, then the problem is probably as I've described above. The solution to that scenario would require writing some stub code in an exe that will wait for the parent MSI process to end properly before even considering starting the second installation. I unfortunately don't have a sample, but possibly someone on this community who has solved this same problem does...and is willing to share. 🙂

On a side note, if the child installation is one that you have to *always* install, you may want to consider using the setup-prerequisite feature in the InstallShield Editor. The limitation of this feature is that you can't conditionalize the child installation based on some selection in the parent installation because setup prerequisites are installed before the main install is executed.

Regards
David Thornley


Hi David

yes thats correct. I need this special case, cause the original msi (don't know why) dosen't install the virtual PDF Printer Device on the target machine, while the deploy process...

Ok i see, now its quite clear, why the routine failed 🙂 thanks for the very detailed explanation. Maybe i can done with the Device Wizard, but for this i need the inf File of the Virtual PDF Printer, and i'm not shure if there is the source for pdfcreator available on the net... maybe i've to ask the authors directly ?

anyway, i will research over for the solution