许多应用程序现在都具有此功能,但Spotify客户端就是一个很好的例子。
该应用程序发现有新版本可用,在后台下载,然后提示用户重新启动以获取新版本。当用户退出时,安装了新版本(或者修补了已安装的版本),然后重新启动应用程序,无需进一步的用户交互。实际上,如果用户从未收到通知,则用户甚至不必做任何应用程序会在每个出口处自动更新的操作。
我们有一个跨平台的Qt 5.3应用程序,我们的精益创业业务模式要求我们经常推送应用程序更新,所以我真的很想找到一个跨平台工作的方法,尽可能少的平台特定代码。
这个问题有很多部分。
具体是否有任何工具,安装程序或代码示例可以执行此操作?
答案 0 :(得分:1)
您可以按照Google Chrome和Opera(最新版本,而不是版本< = 12)的说法进行操作,如下所示:
安装应用程序时,请定期创建以管理员(或有权将文件写入应用程序目录的用户)的更新程序运行的计划任务。例如,在Windows中,您可以在任务计划程序中找到GoogleUpdateTaskMachineCore
和GoogleUpdateTaskMachineUA
条目。
您的应用程序结构如下所示(Google Chrome在C:\Program Files (x86)\Google\Chrome\Application
中具有类似的结构):
C:\ Program Files \ AwesomeApp \ launcher.exe
C:\ Program Files \ AwesomeApp \ 1.0 \ AwesomeApp.exe;应用程序版本1.0
C:\ Program Files \ AwesomeApp \ 1.2 \ AwesomeApp.exe;应用程序版本1.2
安装程序创建的应用程序快捷方式将运行launcher.exe。此launcher.exe将运行目录中可用的最新版本的AwesomeApp.exe。例如,在上面的结构中,launcher.exe将运行AwesomeApp\1.2\AwesomeApp.exe
。
当updater发现更新时,它会下载并将新版本添加到后台目录中。之后,它将告诉正在运行的应用程序(如果它正在运行)通知用户更新已准备就绪,可以通过重新启动应用程序来使用。当然,您的旧应用程序需要关闭自己并通过运行launcher.exe重新启动。此更新程序可能会删除旧的应用程序版本,并仅保留最新的两个版本。