如何在Windows中创建Chrome风格的程序自我更新?

时间:2012-04-26 19:43:59

标签: windows google-chrome auto-update updating self-updating

谷歌的Chrome浏览器在Windows上有一个超级光滑的更新系统。它不需要管理权限,并且可以在不需要用户交互的情况下进行更新。

我正在尝试创建与此类似的内容,并希望了解如何做到这一点。

他们的诀窍的第一部分是它们不像大多数Windows程序那样安装到Program Files,而是安装到C:\Users\USER_NAME\AppData\Local\Google\Chrome\Application。这使得他们的程序文件可以在没有管理权限的情况下自行修改。

查看该目录,我发现不仅有chrome.exe,还有old_chrome.exe。在网上搜索,我发现chrome会自动恢复为old_chrome,以防更新变坏,它仍然可以运行。

这样做是为了创建一个辅助应用程序,它作为安装包的一部分,你将执行转移到(我假设这是可行的),并且帮助应用程序执行文件重命名和重新启动{{1什么时候完成? (如果是这样的话,假设这个助手应用程序在发布时被chrome.exe删除了,解释了为什么我看不到它。)没有办法让chrome.exe重命名为{{1}并复制并启动新的chrome.exe吗?

如果这是制作此类工作的最佳方式,是否有任何预先构建的解决方案可以实现这一点,我可以直接进入我的项目,因为这看起来像是相当通用的功能,或者我必须滚动我自己就是这样的?

或者,如果有更好的方法,它是什么? (对于它的价值,Chrome的方法比Mozilla使用服务的新方法更优雅和简单)

1 个答案:

答案 0 :(得分:1)

好的,让它工作,这是它的工作原理。

不需要帮助应用程序。至少在Windows上,程序可以在适当的位置重命名,只是无法删除。因此,我在程序中添加了一个更新程序例程,并下载了新文件。下载完成后,它会重命名旧的可执行文件,并将新的可执行文件移动到其位置。

然后,您可以从旧的运行进程中执行新的可执行文件,然后退出旧的可执行文件。

Voila,旧版本的新版本无升级交换。