首先,您需要在应用程序主页网站上找到最新版本的文件。我认为最好的方法是为此任务准备一个特殊的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。
我可以提供的另一个提示-如何下载更新。我非常喜欢下一个想法:在应用程序的资源中,有一串CLR代码,您可以即时(使用CodeDom)将其编译到一个临时文件夹中,主应用程序将其调用并关闭。Updater读取参数,设置或注册表并下载新模块。并调用删除所有临时文件的主应用程序。做完了!
(但是这里的所有内容都是关于.NET的)