まず、アプリケーションのホーム Web サイトに最新バージョンのファイルが必要です。このタスク用に特別な SQL テーブルを用意し、新しいバージョンの公開/ナイトリー ビルドの完了後に自動的にデータを入力するのが最善の方法です。アプリケーションは、組み込みの http リンクをバージョンで要求し、現在のものと比較する新しいスレッドを作成します。.NET では、次のようなコードを使用できます。
Version GetLatestVersion() {
HttpWebRequestrequest = (HttpWebRequest)WebRequest.Create(new Uri(new Uri(http://example.net), "version.txt));
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (request.HaveResponse)
{
StreamReader stream = new StreamReader(response.GetResponseStream(), Encoding.Default);
return new Version(stream.ReadLine());
}
else
{
return null;
}
}
Version latest = GetLatestVersion();
Version current = new Version(Application.ProductVersion);
if (current < latest)
{
// you need an update
}
else
{
// you are up-to-date
}
この例では、version.php は 1.0.1.0 のような 1 つのプレーンな文字列のみです。
私が提供できるもう 1 つのヒントは、アップデートのダウンロード方法です。私は次のアイデアがとても気に入っています。アプリケーションのリソースには、一時フォルダーに (CodeDom を使用して) オンザフライでコンパイルする CLR コードの文字列があり、メイン アプリケーションはそれを呼び出して閉じます。アップデータは、引数、設定、またはレジストリを読み取り、新しいモジュールをダウンロードします。そして、すべての一時ファイルを削除するメイン アプリケーションを呼び出します。終わり!
(ただし、ここではすべて .NET に関するものです)