2009-09-01 25 views
6

我有一個NSIS安裝工具包,用於我的.net c#應用程序。NSIS - 靜默自動更新應用程序

考慮到我已經將新更新(新的NSIS應用程序版本)下載到本地計算機,有沒有辦法靜默地自動更新我的應用程序?

謝謝! :)

+0

感謝您的反饋! – 2013-11-20 09:08:14

回答

2

(如果你需要檢測的命令行/自動更新= 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

可以靜默運行安裝程序並安裝在上面,如果這是你的意思:

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

+0

我想要一個自動更新... 如果我運行安裝安靜然後退出應用程序,那麼誰又會啓動我的應用程序?因爲我已經在運行它們時無法覆蓋這些文件。那臺計算機上沒有用戶,所有的東西都必須自動生成,無需交互。 – 2009-09-01 13:39:38

+0

如果您使用foo.exe/Autoupdate/S/D = C:\ Program Files \ Foo啓動它,並檢查您的安裝程序中是否有該參數,那麼您可以告訴您需要重新啓動應用程序 – Anders 2009-09-01 22:20:01

+0

您可以提供鏈接列出所有命令行選項的資源? – 2009-10-13 11:51:39

0

如果您已將包腳本設置爲指定靜默安裝,則不必將/ S傳遞到命令行。

看一看NSIS網站上的silent.nsi示例​​