Qt Installer Framework 源码修改

因为公司一直用 QIFW 做客户端软件的在线更新

当更新完软件后,maintenancetool.exe 最后一个页面的默认按钮是 重新启动

这个 重新启动 启动的是 maintenancetool.exe,而不是重启客户端软件

现在,让我们通过修改 IFW 的源码,改变重启按钮的逻辑吧

如果你懒的编译,也可以用我编译好的

https://thinkinginqt.com/20251127_installer-framework/bin.zip


首先是下载源码,通过 git clone,拉取 4.10 分支的代码

https://code.qt.io/installer-framework/installer-framework.git

然后这个项目需要 静态编译 的 Qt 库

感谢 https://github.com/Fsu0413 编译了 VS2022 静态库

下载 https://sourceforge.net/projects/fsu0413-qtbuilds/files/Qt6.5/Windows-x86_64/MSVC 目录的

Qt6.5.3-Windows-x86_64-VS2022-17.10.0-staticFull-20240527.7z

解压后,在 QtCreator 里引入 qmake.exe

接着通过 vcpkg 安装静态编译的 bz2、lzma、zlib(我在D盘根目录安装了 vcpkg 即 D:/vcpkg/vcpkg.exe)

修改 git/installer-framework/src/libs/installer/packagemanagergui.cpp 的 RestartPage::entering 函数

在 git/installer-framework/src/libs/3rdparty/libarchive/libarchive.pro 的最后加入以下代码

在 git/installer-framework/installerfw.pro 的最后加入以下代码

最后取消 shadow build 的 √ 用 release 模式编译源码

image-20251127162125900

把 git\installer-framework\bin 编译出的 5个 exe 放入 C:\Qt\Tools\QtInstallerFramework\4.9\bin

于是我们就可以重新生成在线安装包了