首先,您需要在您的应用程序主页网站上找到一个最新版本的文件。我认为最好的方法是为此任务提供特殊的 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)到一个临时文件夹,主应用程序调用它并关闭。更新程序读取参数、设置或注册表并下载新模块。并调用删除所有临时文件的主应用程序。完毕!
(但这里的一切都是关于 .NET)