2009-09-01 6 views
6

Ich habe ein NSIS-Installationskit für meine .net C# -Anwendung.NSIS - Silent Autoupdate Application

Gibt es eine Möglichkeit, automatisch meine Anwendung zu aktualisieren, wenn ich bedenke, dass ich das neue Update (neue NSIS-App-Version) bereits auf den lokalen Computer heruntergeladen habe?

Danke! :)

+0

Dank alle für Ihr Feedback! –

Antwort

2

(Falls Sie müssen die Befehlszeile erkennen/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 
0

Sie das Installationsprogramm still und installieren auf ausführen können, wenn das ist, was du meinst:

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

+0

Ich möchte ein Autoupdate ... Wenn ich die Installation stumm und dann die App beenden, wer wird dann meine App wieder starten? weil ich die Dateien nicht überschreiben kann, während ich sie bereits laufen lasse. Es wird keinen Benutzer auf diesem Computer geben und alles muss automatisch erstellt werden, ohne dass eine Interaktion erforderlich ist. –

+0

Wenn Sie es mit foo.exe/Autoupdate/S/D = C: \ Programme \ Foo starten und Ihr Installationsprogramm nach diesem Parameter einchecken, können Sie feststellen, dass Sie die App neu starten müssen. – Anders

+0

Können Sie vielleicht einen Link dazu geben? eine Ressource, in der alle Befehlszeilenoptionen aufgeführt sind? –

0

Es ist nicht erforderlich,/S an die Befehlszeile zu übergeben, wenn Sie das Paketskript zum Angeben von automatischen Installationen eingerichtet haben.

Werfen Sie einen Blick auf die silent.nsi Beispiel auf der NSIS-Website silent.nsi