views:

1056

answers:

2

Hello,

I have an NSIS install kit for my .net c# application.

Is there a way to silently autoupdate my application, considering that I already downloaded the new update (new NSIS app version) to local computer ?

Thanks! :)

A: 

You can run the installer silently and install on top if that is what you mean:

foo.exe /S /D=C:\Program Files\Foo

Anders
I want an autoupdate... If I run the install silent and then quit the app, then who will start up my app again ? because i cannot overwrite the files while i am already running them. There will be no user on that computer and all the stuff must be made automatically with no interaction required.
Adrian Pirvulescu
If you start it with foo.exe /Autoupdate /S /D=C:\Program Files\Foo and check in your installer for that parameter, you could tell that you need to restart the app
Anders
Can you maybe give a link to a resource where all command line options are listed?
Peter Smit
http://nsis.sourceforge.net/Docs/Chapter3.html
Anders
+1  A: 

(In case you need to detect the command line /Autoupdate=yes)

!include FileFunc.nsh
!insertmacro GetParameters
!insertmacro GetOptions

Var CMD_ARGS
Var CMD_RES
Function .onInit
    #
    #installer stuff.
    #
    StrCpy $CMD_ARGS ""
    StrCpy $CMD_RES "no"
    ${GetParameters} $CMD_ARGS
    ClearErrors
    ${GetOptions} $CMD_ARGS /Autoupdate= $CMD_RES
    StrCmp $CMD_RES "yes" is_update is_not_update
    is_update:
        #Execute all your update code(run your update app, etc)
        MessageBox MB_OK|MB_ICONEXCLAMATION "IS UPDATE"
        goto end_auto_update_check
    is_not_update:
        #Execute all your non-update code.
        MessageBox MB_OK|MB_ICONEXCLAMATION "IS NOT UPDATE"
    end_auto_update_check:
FunctionEnd
thepumpkin1979