NSIS - Silent Autoupdate Application

2020-06-18 03:53发布

问题:

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! :)

回答1:

(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


回答2:

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

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



回答3:

It's not necessary to pass /S to the command line if you've set up the package script to specify silent installs.

Take a look at the silent.nsi example on the NSIS site silent.nsi