记录使用Qt工具制作一个安装包的过程
目录
1.1检查Qt Installer Frameworks是否安装
2.4 创建packages/qWidget/meta/config.xml
2.5 创建packages/qWidget/meta/installscript.qs
2.6 创建packages/qWidget/meta/license.txt
1.准备工作
1.1检查Qt Installer Frameworks是否安装
Qt的安装路径下查找,比如D:\Qt\Tools\QtInstallerFramework
不存在该目录就需要安装
1.2.安装Qt Installer Frameworks
找到D:\Qt\MaintenanceTool.exe,运行,选择QtInstallerFramework 安装
1.3准备release出来的exe dll等文件
如何生成release文件已经在这里
Qt 使用发布工具 windeployqt 来releasehttps://blog.csdn.net/castlooo/article/details/140473263
2.创建打包工程所需要的文件及目录
创建打包工程目录比如,用来构建打包工程所需要的目录结构
2.1创建子目录
InstallerExample/config
InstallerExample/packages
InstallerExample/packages/qWidget
InstallerExample/packages/qWidget/data
InstallerExample/packages/qWidget/meta
2.2 创建工程文件
InstallerExample/qWidgetInstaller.pro
记事本编辑工程文件如下
TEMPLATE = aux INSTALLER = qWidgetInstaller #生成的安装文件名称 qWidgetInstaller.exe INPUT = $$PWD/config/config.xml $$PWD/packages #$$PWD pro所在的目录 demo.input = INPUT demo.output = $$INSTALLER demo.commands =binarycreator -c $$PWD/config/config.xml -p $$PWD/packages ${QMAKE_FILE_OUT} demo.CONFIG += target_predeps no_link combine QMAKE_EXTRA_COMPILERS += demo
2.3 创建config/config.xml
<?xml version="1.0" encoding="UTF-8"?> <Installer> <Name>qWidget</Name> <Version>1.0.0</Version> <Title>qWidget Created by Qt 6</Title> <Publisher>CC</Publisher> <StartMenuDir>qWidget</StartMenuDir> <TargetDir>@HomeDir@/qWidget</TargetDir> <CreateLocalRepository>true</CreateLocalRepository> <WizardStyle>Aero</WizardStyle> <WizardShowPageList>true</WizardShowPageList> <WizardDefaultWidth>650</WizardDefaultWidth> <WizardDefaultHeight>430</WizardDefaultHeight> </Installer>
2.4 创建packages/qWidget/meta/config.xml
<?xml version="1.0"?> <Package> <DisplayName>qWidget</DisplayName> <Description>qWidget</Description> <Version>1.0.0</Version> <ReleaseDate>2024-07-17</ReleaseDate> <Licenses> <License name="GNU Public License Agreement" file="license.txt" /> </Licenses> <ForcedInstallation>true</ForcedInstallation> <Script>installscript.qs</Script> </Package>
2.5 创建packages/qWidget/meta/installscript.qs
function Component() { // default constructor } Component.prototype.createOperations = function() { // call default implementation to actually install qWidgets.exe! component.createOperations(); if (systemInfo.productType === "windows") { component.addOperation("CreateShortcut", "@TargetDir@\\qWidgets.exe", "@StartMenuDir@\\qWidget.lnk", "workingDirectory=@TargetDir@"); component.addOperation("CreateShortcut", "@TargetDir@\\qWidgets.exe", "@DesktopDir@\\qWidget.lnk", "workingDirectory=@TargetDir@"); } }
2.6 创建packages/qWidget/meta/license.txt
本软件采用Qt 6.7开源版本开发,遵循Qt开源版本使用的GPL v2/v3和LPGL v3等许可协议。本软件可以自由复制和分发,但需要遵守相应的开源许可协议。
3.拷贝需要打包的文件
将需要打包的release文件 exe dll等拷贝到目录packages/qWidget/meta
4.使用Qt Creator编译生成安装程序
使用Qt Creator打开工程qWidgetInstaller.pro,点击构建项目按钮,查看编译输出结果,编译的结果较为缓慢一些
5. 安装、卸载、运行测试
将生成的安装程序,安装、卸载、运行测试一遍是否问题
生成的桌面图标如下,点击运行正常