当前位置:   article > 正文

Qt实现在线升级 + Qt编译出来的程序打包成一个exe_qt在线更新

qt在线更新

最近在做软件的在线升级。

流程大概是这样:
软件检测到服务器有新的更新包–》
软件将新的更新包下载下来(压缩包)–》
利用QProcess启动自己写的升级程序(并且通过argc、argv传递必要的参数),且关闭自己–》
升级程序解压压缩包(用quaZip)、覆盖原来的文件,完成升级–》
升级程序也通过QProcess启动更新后的程序,然后关掉自己;

此时我的更新程序是和主程序放在一起的,两者调用的是一样的Qt的dll。
在这里插入图片描述

假如单单是更新exe文件的话,这样没问题。

但是假如要连dll都要更新,比如从Qt5.12更新到Qt5.15,那就出问题了。因为在运行SoftwareUpdater时,Qt相关的dll(Qt5Core.dll等)是被占用的,删除不掉的。

因此最好是将SoftwareUpdater做成单个exe也能运行的。
参考这里
可以用到 Engima Virtual Box之类的工具来打包。

弄好之后,理论上就可以进行任意的升级了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/982186?site
推荐阅读
相关标签
  

闽ICP备14008679号