他社製のプログラムのアップデート機能は、メインアプリケーションを起動したままアップデート処理を行なっているように見えますが、どのようにしているのでしょうか。
古いメインアプリケーションを削除するや、上書きコピー処理は当然ですがアプリケーションが起動したままだと無理なはずです。
別プログラムとしてアップデートを実装することは出来たのですが、起動したままアップデートし、完了後に再起動を要求するのはどのように行なっているのでしょうか。
それともその他社製プログラムも別プログラムとして作っているのでしょうか。
色々な方法が考えられます。たとえば、System.Windows.Forms.Application.Restartメソッドを使えば、再起動することができます。この場合であれば、起動しているプログラムのファイル名をリネームしてから、新しいプログラムをコピーしてからRestartメソッドを呼べば新しいプログラムが起動されます。
同一プロセスで行うのであれば、以下のような方法も考えることができます。
1.起動用のディレクトリーへexeをコピー
2.起動用のディレクトリーから起動
3.インストール場所へ新しいexeを置き換え
4.再起動で1、2を行う
この方法は、シャドウコピーなどを使っても可能です。要は、起動用のexeとアプリ本体とを別プログラムにすることです。
別の方法としては、ClickOnceを使う方法などもあります。
興味深い回答を有難うございます。
2012/01/06 19:13:04実に色々と方法が浮かんできますね。
ClickOnceはなにかとセキュリティ上し兼ねますが・・
色々とご提示いただき有難うございます!