2009-09-01 13 views
6

Mam zestaw instalacyjny NSIS dla mojej aplikacji .net C#.NSIS - Silent Autoupdate Application

Czy istnieje sposób, aby w trybie cichym automatycznie zaktualizować moją aplikację, biorąc pod uwagę, że już pobrałem nową aktualizację (nową wersję aplikacji NSIS) na komputer lokalny?

Dzięki! :)

+0

Dzięki wszystkim za odpowiedź! –

Odpowiedz

2

(w przypadku trzeba wykryć wiersza polecenia/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

można uruchomić instalator cicho i zainstalować na górze, czy to jest to, co masz na myśli:

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

+0

Chcę autoupdate ... Jeśli uruchomię instalację cichą, a następnie zakończę aplikację, to kto ponownie uruchomi moją aplikację? ponieważ nie mogę nadpisać plików, gdy już je uruchomię. Nie będzie użytkownika na tym komputerze, a wszystkie rzeczy muszą być tworzone automatycznie bez interakcji. –

+0

Jeśli uruchomisz go za pomocą foo.exe/Autoupdate/S/D = C: \ Program Files \ Foo i sprawdź instalator dla tego parametru, możesz powiedzieć, że musisz ponownie uruchomić aplikację. – Anders

+0

Czy możesz podać link do zasób, w którym wymieniono wszystkie opcje wiersza poleceń? –

0

Nie trzeba przekazywać/S do wiersza poleceń, jeśli został skonfigurowany skrypt pakietu, aby określić ciche instalacje.

Spójrz na przykład silent.nsi na stronie NSIS silent.nsi