こんにちは。


WindowsXP上で動作するアプリをVisual Studio 2005でC#を使って開発しています。

このアプリは、お客様の機能追加やバグ修正のために、オンラインで自動アップデート
できる仕組みを入れる必要があるのですが、ftpでexeファイルを
直接ダウンロードして入れ替える方法だと、そのアプリ自身が起動中なのでファイルが
更新できません。

これを解決するには、どうしたらいいでしょうか?

フリーソフトや他のソフトは使わずに、アプリ自身に組み込む方法か、バッチで
できる方法があれば教えて下さい。

よろしくお願いいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2009/11/24 19:00:06
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:tama-jp No.3

回答回数36ベストアンサー獲得回数11

ポイント26pt

1.起動用プログラムを作成し、

そこでアップデートが必要か判断しアップデートが必要であれば

新しいデータをダウンロードする。

そう出なければ本体を起動する


2.アップデートがあった場合、特定の場所に一時期ダウンロードさせておき、

プログラムでJscriptやVBスクリプトをプログラムにてスタートアップに作成させ、

再起動を促すメッセージを出し再起動をさせる。

再起動するとスタートアップに先ほど作成したスクリプトが

特定においたデータを実プログラムに上書きをし実プログラムを起動させる。

実プログラムは、起動時にスタートアップに設定したスクリプトを削除するようにしておく。

(スクリプトが自分自身を消す方法もあるのですが、失敗した場合おかしくなり得るので

実プログラムの方から消させる方がいい。)

再起動の方法。

http://dobon.net/vb/dotnet/system/shutdown.html


3.「2.」のスタートアップ登録をレジストリに書き込む方法でさせる。

http://dobon.net/vb/dotnet/system/osstartuprun.html


以上。こんなところですかね

その他の回答2件)

id:degucho No.1

回答回数281ベストアンサー獲得回数75

ポイント27pt

Webサーバが用意できるならClickOnceで

http://www.masahiko.info/it/archives/000888.html

ftpサーバならスタートアップにftp.exeを使用してget→コピーとかいう

バッチを入れさせてもらえば良いのでは?

id:aiaida333 No.2

回答回数166ベストアンサー獲得回数4

ポイント27pt

スタートアップに ソフトウェアが自動的に起動するようにして

毎回毎回、見に行ってから起動したらいいと思います。

http://q.hatena.ne.jp/answer

id:tama-jp No.3

回答回数36ベストアンサー獲得回数11ここでベストアンサー

ポイント26pt

1.起動用プログラムを作成し、

そこでアップデートが必要か判断しアップデートが必要であれば

新しいデータをダウンロードする。

そう出なければ本体を起動する


2.アップデートがあった場合、特定の場所に一時期ダウンロードさせておき、

プログラムでJscriptやVBスクリプトをプログラムにてスタートアップに作成させ、

再起動を促すメッセージを出し再起動をさせる。

再起動するとスタートアップに先ほど作成したスクリプトが

特定においたデータを実プログラムに上書きをし実プログラムを起動させる。

実プログラムは、起動時にスタートアップに設定したスクリプトを削除するようにしておく。

(スクリプトが自分自身を消す方法もあるのですが、失敗した場合おかしくなり得るので

実プログラムの方から消させる方がいい。)

再起動の方法。

http://dobon.net/vb/dotnet/system/shutdown.html


3.「2.」のスタートアップ登録をレジストリに書き込む方法でさせる。

http://dobon.net/vb/dotnet/system/osstartuprun.html


以上。こんなところですかね

  • id:stepwgn24z
    皆様回答ありがとうございました。個別にお礼ができずすみませんでした。

    tama-jpさんの案で作成しようと思います。

    どうもありがとうございました。

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

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

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

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