![]() |
1
13
如果你想自己实现它,这也很容易。我们的应用程序使用以下API定期轮询Web服务以获取信息:
优点:通过将逻辑编码到getversion方法中,您可以将不同的版本推送给不同的客户,它还允许您首先将beta版本推送给有限数量的客户。 检查所有下载文件的哈希值可以确保应用程序正确下载文件。这也可用于修复损坏的应用程序文件。当版本的散列与所有下载文件的散列匹配时,是时候安装了。 要安装,请让主程序启动更新应用程序并退出。更新应替换所有更改的应用程序文件。更新程序还可以运行与版本相关的任何SQL更改脚本或注册表更改。 在更新程序结束时,再次启动主应用程序,如果需要,让主应用程序更新更新更新程序。它们互相更新,所以您可以将错误修复推送到更新程序和主应用程序。 我还建议在向客户推送新版本之前测试降级,这样,如果发现任何严重的错误,您可以自动切换到旧的稳定版本。 |
![]() |
2
5
正如丹尼尔所说,由于您使用的是.NET和Windows,ClickOnce应该对您很好。 另一个选择是使用 Shadow Copying . 基本上是告诉程序集从不同的位置执行到安装它们的位置。这将允许应用程序更新自己的文件,即使加载了程序集。我以前没有用过这个,但我已经看过几次了。 ClickOnce是一个更简单的解决方案,除非你有一些不满足的需求,否则我会选择它。ClickOnce允许您将应用程序发布到Web服务器或网络共享,并允许用户在新版本可用时自动更新其副本。从内存中,它会自动检查并在用户试图启动应用程序时提示用户。 |
![]() |
3
3
我们所做的是:当应用程序启动时,或者每小时左右,我们向我们的Web服务器发出一个GET请求。 http://www.domain.com/app/versionCheck.php?app=APP_NAME&version=2.1.1.1 脚本检查数据库并比较版本。如果版本不同,“升级”被发送回实用程序,其他方面则为“好” 如果实用程序收到“升级”,它会将用户发送到预定的URL,以下载实用程序的最新版本。 这适用于较小的公用设施(<20MB)。 建议
|
![]() |
4
2
您尚未指定要使用的语言/平台/框架,但我建议您使用内置此功能的语言/平台/框架。 微软有 ClickOnce 部署,我知道Adobe Air does something similar . 这里有一个关于 auto-update functionality in Java . |