【问题标题】:Directions and Opinions on Creating Update System for the Application关于创建应用程序更新系统的方向和意见
【发布时间】:2010-05-26 22:12:10
【问题描述】:
我只是想找出一个很好的解决方案来设计我创建的 Windows 窗体应用程序的更新过程。我想到了应用程序内的一个按钮,用于手动检查更新并在启动应用程序时进行检查。只是我对技术不熟悉。我虽然在 FTP 服务器中有更新设置文件,并检查服务器是否有更新,其中包含文件名和版本信息的 txt 文件。当应用完成下载更新时,关闭并启动更新设置文件。
对这个主题有什么建议、意见吗?
【问题讨论】:
标签:
c#
.net-3.5
winforms
auto-update
【解决方案1】:
如今,应用程序更新是那些必要的弊端之一。考虑到自动更新的应用程序,我倾向于将它们分为两类:
- 干净的更新,每月一次或更少,快速更新,没有太多的唠叨或点击。并且绝对没有包含诸如工具栏和桌面搜索程序之类的偷偷摸摸的软件...... Firefox 往往对更新“很好”,尽管它的插件可能很烦人。
- 其他组不断唠叨,需要点击很多按钮或重新启动,需要很长时间才能“解压”(Adobe Acrobat,看着你),违背你的意愿更改设置(Java),或者只是一般不愉快。
考虑到这些要点,将您的自动更新设计为尽可能对用户友好,并计划您的用户有时希望跳过更新(除非它对操作至关重要)。
在我的公司,我们有一个需要更新的小型应用程序,而且还必须在对时间非常敏感的环境中运行。为了便于更新,我们让它执行以下操作:
- 在启动时,会在内部 URL 上检查文本文件(这可能是 HTTP 或 FTP 调用)。将版本号与文件的内容进行比较。
- 如果软件是最新的,则无需执行任何其他操作。如果没有,则会显示一个对话框,通知用户应用程序必须执行更新。 (在我们的例子中,没有取消或等待的选项,但如果可以的话,我强烈推荐它。)
- 从同一站点下载安装文件,并通过 Process.Start 命令启动,并带有一些用于执行无人值守安装/更新的开关。
- 应用程序在安装后启动,对用户的干扰最小。
您可能想做一些不同的事情:
- 如果在启动时不检查更新,请提供一个选项来安排更新检查或从(例如)帮助菜单手动执行更新检查。
- 如果可能,允许用户取消或延迟更新;没有什么比通过弹出对话框要求您每隔几分钟执行一次更新来完成工作更令人沮丧的了。
- 确保在部署之前测试您的安装包或补丁! (经验之声!)