私のc#アプリケーションは、いくつかのパッチをインストールするかもしれないインストーラを起動します。インストーラが終了したら、私のアプリはインストールされているパッチごとにシステムを何度も再起動する必要があります。これを行う最善の方法は何ですか?インストール後の再起動
現在、私は/f /l
引数でシャットダウンプロセスを呼び出しています。
私のc#アプリケーションは、いくつかのパッチをインストールするかもしれないインストーラを起動します。インストーラが終了したら、私のアプリはインストールされているパッチごとにシステムを何度も再起動する必要があります。これを行う最善の方法は何ですか?インストール後の再起動
現在、私は/f /l
引数でシャットダウンプロセスを呼び出しています。
これが本当に必要な場合、残っているパッチがあれば、シャットダウンする前にRunOnceレジストリキーを設定するだけのようです。 http://msdn.microsoft.com/en-us/library/h5e7chcf.aspx
ランとのRunOnceレジストリキー:C#でのキー設定
http://msdn.microsoft.com/en-us/library/aa376977(v=vs.85).aspx
返信いただきありがとうございます。私はレジストリで必要な再起動の回数をカウントし、再起動するたびにログインのデクリメント数を減らすことができると考えていました。 – user1181935
RunOnceを正しく使用する場合、カウントする必要はありません。あなたが別のパッチを実行する必要がある場合は、1つのパッチが完了したときに設定してください。最後の場合は設定しないでください。 –
FWIW、それは一般的にWindowsの更新プログラムを再配布するインストーラの悪いアイデアです。まずライセンスの問題があり(一般的に再配布可能ではありません)、顧客のコンピュータにパッチを当てることの所有権を握るうえでのウサギの穴の問題があります。通常は、インストーラにアプリケーションを中断させ、インストーラを終了する前にユーザに知らせるような状況をチェックさせる方が良いでしょう。
なぜ何度も再起動する必要がありますか?なぜ、すべてのパッチをインストールしてから、一度再起動しないのですか? –
私は@ M.Babcockに同意しますが、私はもう一歩を進めます。なぜユーザーモードアプリケーション*はシステム全体を再起動する必要がありますか?これを行う必要があるのはWindowsコンポーネントだけであり、すべてではありません。 –
@CodyGray - 私は原則として同意しますが、私がインストールするアプリケーションの大半は再起動が必要であることを知っています。これが本当にインストーラプロセスであれば、私はそれらのポイントを見ることができます...確かに複数回ではありません。 –