自动更新Google Chrome工作流程

Sam*_*yon 8 auto-update

在我所在的公司,我被要求编写一个自动更新功能.即应定期检查新版本是否可用,下载新版本并在下次应用程序启动时静默应用.

我已经有了一些东西,但它更像是一个肮脏的黑客,而不是我感到高兴的东西.所以,我想知道如何设计和实现这样的解决方案.我可怕的黑客就像这样:

  1. 有一种机制来检查是否存在新版本(数据库查询或Web服务)

  2. 下载完整新版本的完整zip.

  3. 检查文件签名.如果一切顺利,请设置注册表值:必须更新为true.

  4. 当应用程序重新启动时,如果必须更新值为true,则启动更新程序并存在.

  5. 更新将删除应用程序文件夹的内容,解压缩更新并替换旧内容,启动应用程序并退出.

现在,我想改变它,所以它更干净.我打算将更新作为bsdiff文件发送.它被下载了.但问题是,接下来会发生什么?

何时应用更新?谁负责应用补丁?它是程序本身还是第三个程序,正如我所做的那样,负责应用补丁并重新启动应用程序?

syn*_*hko 2

您提出的工作流程或多或少就像它应该工作的那样,但没有必要重新发明轮子 - 有很多库可以为您做到这一点。使用第三方库的好处是可以保持代码整洁,同时确保自动更新的脏过程得到控制并完美运行。

相信我,我知道。我是NAppUpdate的作者,这是一个 .NET 应用程序更新框架(您可能想尝试或学习)。