anadem
26th September 2007 21:17 UTC
how to make a non-installer for Vista?
I'm using NSIS to package and deploy a repair tool. The plan is that the package places its files on the target, then execs its main app (one of the files), and finally removes all its files. It doesn't "stay installed".
There's no user interaction with the package, no choice of directory, no shortcuts installed - just a silent wrapper; (the repair app itself does have a dialog.) The package doesn't create entries in Add/Remove programs and so isn't really an "installer" per se.
I'm very much a novice with NSIS but this seems to be working out, except on Vista (surprise!).
After the package has finished (having successfully run the app) Vista pops up the 'Program Compatibility Assistant' saying:
"This program might not have installed correctly
"If this program didn't install correctly, try reinstalling using settings that are compatible with this version of Windows."
with options:
" o Reinstall using recommended settings
" o This program installed correctly."
Is there any way to make a package which Vista will not consider to be an installer? Or at least, stop Vista wanting to know if the package installed ok. (The UAC prompts prior to running the repair are fine -- user must indeed be admin to make the repair.)
Any suggestions will be much appreciated.
Thanks
Anders
26th September 2007 22:31 UTC
Are you setting the exit code?
Are you using Requestexecutionlevel ?
anadem
26th September 2007 22:36 UTC
no, neither setting exit code nor using Requestexecutionlevel -- I'll add them & see what happens (got yanked to other stuff for today, tho)
thanks!
anadem
27th September 2007 01:16 UTC
thanks, RequestExecutionLevel did the trick!
> are you setting the exit code?
the NSIS docs are coy on this ... does this mean "set the NSIS installer's exit code" or "set the exitcode for the application which the installer execs"?
I can't find out how to set the installer's exit code.
(My exec catches the app's exit code in a variable using
ExecWait "$INSTDIR\fixup.exe" $retcode
demiller9
27th September 2007 01:32 UTC
4.9.7.5 SetErrorLevel error_level
Sets the error level of the installer or uninstaller to error_level. See Error Levels for more information.
IfRebootFlag 0 +2
SetErrorLevel 4
anadem
27th September 2007 01:34 UTC
thanks!!
(fwiw I searched for exit code & exitcode ... guess I should've been thinking DOS-style.)
Anders
27th September 2007 02:26 UTC
yeah, but unless you are setting it yourself, nsis should return 0 if everything is ok, if you want to force "success" you can set it to 0 yourself at the end of your last section
chllen
7th July 2009 23:56 UTC
I have 100% same problem.
I add "SetErrorLevel 0" at the end of "Main" section.
see source: http://ovpnp.svn.sourceforge.net/vie...31&view=markup
And its not helps for me..
Any suggestions will be much appreciated :)