Windows installer 自动更新windows应用程序的最佳方法是什么?
谷歌浏览器自动更新自己。我想在我自己的应用程序中克隆这个确切的功能。在Windows上实现此功能的最佳方法是什么?要复制此更新行为,您需要两件事:Windows installer 自动更新windows应用程序的最佳方法是什么?,windows-installer,auto-update,Windows Installer,Auto Update,谷歌浏览器自动更新自己。我想在我自己的应用程序中克隆这个确切的功能。在Windows上实现此功能的最佳方法是什么?要复制此更新行为,您需要两件事: 定期检查更新的更新程序应用程序。如果发现更新,则应自动安装。大多数商业设置创作工具都包含良好的更新程序应用程序。你可以试着自己编写一个更新程序,但这并不像听起来那么容易 每个产品版本的按用户安装。每用户安装只在用户配置文件文件夹(AppData、Roaming文件夹等)和HKEY_当前用户中写入数据。没有程序文件或HKEY_本地机器 需要按用户安装,
在这两种情况下,您需要考虑更新器可能需要更新自己。因此,执行更新的进程必须是临时进程(例如更新程序应用程序的临时副本)。它也应该在没有标高的情况下运行。这就是为什么服务不是一个好主意。它需要在更新之前停止自己,使用一个临时进程来处理更新,并在完成后重新启动
其他需要考虑的事情是:- 权限问题(如果更新过程需要任何权限或提升)
- 下载位置
- 更新检测机制(更新程序如何检测是否应安装新版本)
- 检测正在运行的应用程序
- 更新资源
- 更新产品信息(控制面板中的快捷方式、程序和功能小程序等)
- :旧版本在安装新版本之前已完全卸载
- :旧版本已修补
- 通知更新程序更新可用的方法(例如服务器上的更新信息文件)
- 检测是否安装了更新的方法(因此只安装一次)
定制更新程序主要由拥有大量产品的大型公司使用,因为投资对他们来说是值得的。如果你想拥有完全相同的功能,你可以。谷歌已经将其开源
试试winsparkle-。这是一个C++库。< /p>让它成为一个WebApp?每5小时运行一次更新代码?如果我的回答中遗漏了什么,请告诉我。一条评论:我建议避免使用持久更新程序,而是使用任务计划程序定期运行。回答很好。。。但是跨平台需求呢?通常客户端更新程序应用程序是特定于平台的。因此,每个平台都需要不同的更新程序。服务器部分对于所有平台都是相同的。@CosminPirvu但是,msp太难可靠地使用,而且通常整个msi包(包括cab文件)太大,无法通过web交付。因此,我认为上面建议的两种更新方式都不适合我。你是怎么想的?不幸的是,MSP补丁是唯一一种可以在基于MSI的安装中开箱即用的小型更新。它们仅适用于较小的更改(例如,几个文件)。但是,如果您不尝试在它们中包含大量安装程序逻辑,它们确实可以工作。另一种方法是创建自己的安装程序和更新。这通常不是一项容易的任务。然而,这个项目似乎不再更新了……这个项目有更新吗?我试着使用它,但是它很难配置,而且看起来这个项目已经被谷歌终止了。有什么见解吗?最近它看到了更多的更新。它肯定没有停产。我认为谷歌只是在内部开发,向公众发布他们内部拥有的东西“缓慢”@PriteshAcharya我写了一个教程,可以让配置变得更容易:这能处理更新作为服务运行的应用程序吗?我读了一些,但没有看到这个功能。