3

谷歌的 Chrome 浏览器在 Windows 上有一个超级流畅的更新系统。它不需要管理权限,并且不需要用户交互就可以更新。

我正在尝试创建与此类似的东西,并希望获得有关如何做到这一点的任何建议。

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

查看该目录内部,我看到不仅有一个chrome.exe,而且还有一个old_chrome.exe. 在网上搜索,我发现 chrome 将自己备份为 old_chrome 以防更新出错,它仍然可以运行某些东西。

那么这样做的方法是创建一个作为安装包的一部分提供的帮助应用程序,您将执行转移到(我认为这在某种程度上是可行的),并且该帮助应用程序执行文件重命名并chrome.exe在完成后重新启动?(如果是这样,假设这个帮助应用程序在启动时又被删除chrome.exe,解释了为什么我没有看到它坐在那里。)没有办法简单地chrome.exe重命名old_chrome.exe并复制并启动新chrome.exe的存在吗?

如果这是完成类似工作的最佳方式,是否有任何预先构建的解决方案可以做到这一点,我可以将其加入到我的项目中,因为这似乎是相当通用的功能,或者我是否必须推出这样的东西我?

或者,如果有更好的方法,它是什么?(值得一提的是,Chrome 的方法比 Mozilla 使用服务的新方法更优雅、更直接)

4

1 回答 1

1

好的,得到这个工作,这是它的工作原理。

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

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

瞧,不升级旧版本的新版本交换。

于 2012-04-28T08:07:07.587 回答