记录使用Qt工具制作一个安装包的过程
目录
1.准备工作
1.1检查Qt Installer Frameworks是否安装
1.2.安装Qt Installer Frameworks
1.3准备release出来的exe dll等文件
2.创建打包工程所需要的文件及目录
2.1创建子目录
2.2 创建工程文件
2.3 创建config/config.xml
2.4 创建packages/qWidget/meta/config.xml
2.5 创建packages/qWidget/meta/installscript.qs
2.6 创建packages/qWidget/meta/license.txt
3.拷贝需要打包的文件
4.使用Qt Creator编译生成安装程序
5. 安装、卸载、运行测试
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. 安装、卸载、运行测试
将生成的安装程序,安装、卸载、运行测试一遍是否问题
生成的桌面图标如下,点击运行正常