2009-09-01 33 views
6

私は自分の.net c#アプリケーション用のNSISインストールキットを持っています。NSIS - サイレント自動アップデートアプリケーション

ローカルコンピュータに新しいアップデート(新しいNSISアプリケーションバージョン)をダウンロードしたと考えて、アプリケーションを自動的に自動アップデートする方法はありますか?

ありがとうございます!あなたは黙ってインストーラを実行し、それはあなたが何を意味するかであれば上にインストールすることができます:)

+0

感謝をsilent.nsi例を見てみましょう! –

答えて

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

私は自動アップデートが欲しい... 私がインストールを実行して、サイレントを終了し、その後、誰が私のアプリケーションを再起動するのですか?私はすでにそれらを実行している間私はファイルを上書きすることはできません。そのコンピュータにはユーザーはいなくても、すべての情報は自動的に作成され、対話は必要ありません。 –

+0

foo.exe/Autoupdate/S/D = C:\ Program Files \ Fooで起動し、インストーラでそのパラメータをチェックすると、アプリケーションを再起動する必要があることがわかります – Anders

+0

すべてのコマンドラインオプションがリストされているリソース? –

0

サイレントインストールを指定するようにパッケージスクリプトを設定している場合、コマンドラインに/ Sを渡す必要はありません。

はNSISサイト上のすべてのあなたのフィードバックのための​​