(图片来源网络,侵删)
QtIFW 简介Qt IFW(Qt Installer Framework 的简称 ),是由 Qt 官方提供的安装程序制作框架进入Qt IFW的官方下载页,选择一个合适版本,这里选择版本号为4.5.0的windows版本进行安装官方下载地址:https://download.qt.io/official_releases/qt-installer-framework/本文会在Windows上基于Qt IFW进行程序安装包程序制作,包括常用的离线安装包和在线更新包的生成和验证都会详细介绍使用Qt IFW制作安装包默认您已经准备好了完整的程序包(windeployqt或者其它工具生成)环境配置添加到Qt Creator帮助文档打开 Qt Creator,选择【工具】–>【选项】–>【帮助】–>【文档】–>【添加】选择Qt IFW安装目录doc下的ifw.qch文件4.5.0安装目录下没有qch文件,此步骤可以跳过配置Windows环境变量Windows下使用binarycreator作为打包工具,必须把binarycreator工具所在的bin目录导入的环境变量Path中Qt IFW的使用构建Example直接Qt构建examples.pro可查看各个例子安装效果制作安装包至少应包含config/、packages/两个目录离线安装创建配置文件<?xmlversion="1.0"encoding="UTF-8"?><Installer><Name>UDS_Updata</Name><Version>1.0.0</Version><Title>UDS_UpdataInstaller</Title><Publisher>nealwang</Publisher><StartMenuDir>UDS_Updata</StartMenuDir><TargetDir>@ApplicationsDir@/UDS_Updata</TargetDir></Installer>配置文件指定如下信息:< Title > 标题栏上安装程序名称< Name > 显示在安装页面上应用程序的名称< Version > 应用程序的版本号< Publisher > 软件发布者< StartMenuDir > 添加到开始菜单默认程序组名称< TargetDir > 应用程序的安装目录创建包信息文件<?xmlversion="1.0"encoding="UTF-8"?><Package><DisplayName>UDS_Updata</DisplayName><Description>ThisisademoforQtIFW</Description><Version>1.0.0-1</Version><ReleaseDate>2023-10-19</ReleaseDate><Default>true</Default><Script>installscript.qs</Script><Licenses><Licensename="PublicLicenseAgreement"file="license.txt"/></Licenses></Package>各个元素含义如下:< DisplayName > 指定组件的名称< Description > 显示选中组件的描述信息< Version > 组件的版本号信息,可用作后期版本更新< ReleaseDate > 组件发布的日期< Default > 安装过程中组件是否默认选中,true表示默认选中,false默认补选中< Script > JavaScript文件名,执行一些个性化的安装操作< Licenses > 添加许可文件自定义安装通过在installscript.qs文件中添加如下内容,分别添加应用程序到开始菜单快捷方式和桌面快捷方式functionComponent(){gui.pageWidgetByObjectName("LicenseAgreementPage").entered.connect(changeLicenseLabels);}changeLicenseLabels=function(){page=gui.pageWidgetByObjectName("LicenseAgreementPage");page.AcceptLicenseLabel.setText("YesIdo!");page.RejectLicenseLabel.setText("NoIdon't!");}Component.prototype.createOperations=function(){//调用默认实现component.createOperations();if(systemInfo.productType==="windows"){//添加桌面快捷方式component.addOperation("CreateShortcut","@TargetDir@/UDS_Updata.exe","@DesktopDir@/UDS_Updata.lnk","workingDirectory=@TargetDir@");//添加开始菜单快捷方式component.addOperation("CreateShortcut","@TargetDir@/UDS_Updata.exe","@StartMenuDir@/UDS_Updata.lnk","workingDirectory=@TargetDir@");}}准备打包文件将提前准备好的程序(.exe、.dll等文件)开始打包执行如下命令binarycreator-cconfig\config.xml-ppackagesUDS_updateInstaller-v验证测试安装包双击生成安装包一路next即可,部分截图如下在线安装生成基础安装包binarycreator --online-only -c config/config.xml -p packages installer.exe创建初版存储库repogen -p packages repository安装基础安装包此过程若使用Gitee做存储库可能会出现异常,详见异常问题汇总创建新版本存储库repogen --update-new-components -p packages_update3.2 repository使用安装包中maintenancetool安装更新异常问题汇总异常1使用Gitee做资源库时较大文件无法下载,提示协议未知;暂无解决办法,需切换成其它资源库建议使用github存储库或者自建http服务笔者使用python自带的httpserver进行测试github需要修改hosts或者梯子,请自行选择异常2安装目录存在且包含安装程序,这就涉及到自动卸载旧版本或者覆盖安装问题总结QtIFW比较灵活支持离线或在线安装程序,或两者兼而有之,具体取决于您的使用案例支持资源库、样式表、窗口等的定制化操作实操内容已上传Github,感兴趣请移步,欢迎大佬批评指正后续会持续更新完善https://github.com/nealwang123/QtIFWOnline.git
0 评论