Archive: Uninstaller execution doesn´t wait


Uninstaller execution doesn´t wait
Hey there!

During my installation I´m executing other nsis installer write by myself. Those create silent uninstaller in my INSTDIR. The main uninstaller is in the INSTDIR as well.

The installation works fine, the main installer waits until the silent installer executables are finished. BUT when I uninstall after on, then the nsexec:exectolog doesn´t wait. The silent uninstaller are executed but if you interupt them like with a reboot after uninstall they will abort.

I don´t know what I´m doing wrong with my uninstaller that nsexec doesn´t wait!

Any suggestions out there?

Edit:
Installer execution looks like this:
SetOutPath "$INSTDIR"
CopyFiles /silent "$EXEDIR\content\Program.exe" "$INSTDIR" "57600"
nsExec::ExecToLog '"$INSTDIR\Program.exe" /S'
Delete "$INSTDIR\Program.exe"
Uninstaller execution looks like this:
nsExec::ExecToLog '"$INSTDIR\removeProgram.exe" /S'


http://nsis.sourceforge.net/When_I_use_ExecWait_uninstaller.exe_it_doesn%27t_wait_for_the_uninstaller


Thanks for the fast reply!

This command should work to make it silent and disable the temporary copying am I right?

ExecWait '"$INSTDIR\uninstall.exe" _?=$INSTDIR /S'

Edit: Just for myself, Execwait doesn´t wait because the uninstaller seems for the exec command to be finished because it changes it´s location right?


_?= needs to be last. ExecWait doesn't wait because the uninstall executable copies itself to a temp folder and runs itself from there (while the original instance exits). _?= stops this behaviour.

Stu


ExecWait ALWAYS waits for its child process, the problem is the child process, not ExecWait (This is true for all the "does not wait" threads on this forum)

Step1: Make sure the command line is correct: '"c:\path\app.exe" param[s]'
Step2: Figure out why the child process is terminating early
Step3: Profit?