VB.NETで製品のアップデートを実装するには?

他社製のプログラムのアップデート機能は、メインアプリケーションを起動したままアップデート処理を行なっているように見えますが、どのようにしているのでしょうか。
古いメインアプリケーションを削除するや、上書きコピー処理は当然ですがアプリケーションが起動したままだと無理なはずです。
別プログラムとしてアップデートを実装することは出来たのですが、起動したままアップデートし、完了後に再起動を要求するのはどのように行なっているのでしょうか。
それともその他社製プログラムも別プログラムとして作っているのでしょうか。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/01/10 15:35:02

回答1件)

id:a-kaza No.1

回答回数3ベストアンサー獲得回数0

色々な方法が考えられます。たとえば、System.Windows.Forms.Application.Restartメソッドを使えば、再起動することができます。この場合であれば、起動しているプログラムのファイル名をリネームしてから、新しいプログラムをコピーしてからRestartメソッドを呼べば新しいプログラムが起動されます。
同一プロセスで行うのであれば、以下のような方法も考えることができます。
1.起動用のディレクトリーへexeをコピー
2.起動用のディレクトリーから起動
3.インストール場所へ新しいexeを置き換え
4.再起動で1、2を行う
この方法は、シャドウコピーなどを使っても可能です。要は、起動用のexeとアプリ本体とを別プログラムにすることです。
別の方法としては、ClickOnceを使う方法などもあります。

id:hokuto0127

興味深い回答を有難うございます。
実に色々と方法が浮かんできますね。
ClickOnceはなにかとセキュリティ上し兼ねますが・・
色々とご提示いただき有難うございます!

2012/01/06 19:13:04

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません