【Qt】QtIFW 安装包制作总结-通用打包过程

QtIFW 安装包制作总结
一、引言

​ 当一个软件开发完成后,需要发布。面对发布,故而需要制作一个安装器,将其软件运行本体打包。并可根据软件运行的平台进行相关平台参数的定制。从而实现软件的安装。

​ 一个软件包安装器,可能包含以下几个部分:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vSDBLyOF-1636194459411)(file:///D:/ProgramFiles/QtIFW-4.0.0/doc/html/images/ifw-user-flow-installing.png)]

​ 本系列文章围绕QtIFW为主题,记录如何使用QtIFW进行软件的打包,以及安装包的个性化定制、多组件安装等。

二、一个常规软件发布安装包的制作流程细节

​ 注:本部分内容假设运行平台环境为Windows。

​ 基于QtIFW的软件发布,需要进行以下几个步骤的处理:

(1)创建一个包含所有配置文件和可安装包的包目录。

(2)创建一个配置文件(config.xml),其中包含关于如何构建安装程序二进制文件和在线存储库的信息。

(3)创建包含可安装组件信息的包信息文件。

(4)创建安装程序内容并将其复制到包目录。

(5)使用binarycreator工具来创建安装程序。


2-1、创建一个包含所有配置文件和可安装包的包目录

​ 创建一个反映安装程序设计的目录结构,并允许将来扩展安装程序。该目录必须包含名称为config和packages的子目录。如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zJS1sT21-1636194459414)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\image-20211106180152150.png)]

2-2、创建一个配置文件(config.xml)

​ 在config目录中,创建一个名为config.xml的文件,包含以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<Installer>
    <Name>gammaray</Name>
    <Version>2.11.50</Version>
    <Title>gammaray</Title>
    <Publisher>kdab Qt-Project</Publisher>
    <!-- Directory name is used in component.xml -->
    <StartMenuDir>gammaray</StartMenuDir>
    <TargetDir>@HomeDir@/gammaray</TargetDir>
</Installer>

​ config.xml配置文件指定了在简介页面显示的信息:

  • <Title>元素指定显示在标题栏上的安装程序名称。

  • <Name>元素指定添加到页面名称和介绍文本中的应用程序名称。

  • <Version>元素指定应用程序的版本号。

  • <Publisher>元素指定软件的发布者(例如,在Windows控制面板中显示)。

  • <StartMenuDir>元素指定Windows开始菜单中产品的默认程序组的名称。

  • <TargetDir>元素指定向用户显示的默认目标目录是当前用户的主目录中的InstallationDirectory(因为预定义的变量@HomeDir@用作值的一部分)

2-3、创建包含可安装组件信息的包信息文件。

​ 在这个简单的场景中,安装程序只处理一个名为org.gammaray.entry的组件。为了向安装程序提供有关组件的信息,创建一个名为package.xml的文件,包含以下内容,并将其放在目录中:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AtCN0eHC-1636194459416)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\image-20211106180439329.png)]

​ package.xml文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<Package>
    <DisplayName>gammaray</DisplayName>
    <Description>gammaray</Description>
    <Version>2.11.50</Version>
    <ReleaseDate>2021-09-04</ReleaseDate>
	    <Licenses>
        <License name="gammaray Public License Agreement" file="LICENSE.GPL.txt" />
    </Licenses>
    <Default>true</Default>
    <Script>installscript.qs</Script>
</Package>

关于package.xml文件的编写可参考文档:

  • <DisplayName>元素指定组件列表中组件的名称。

  • <Description>元素指定了当组件被选中时显示的文本。

  • <Version>元素使您能够在更新可用时向用户推送更新。

  • <License>元素表示在License检查页面显示的包含License协议文本的文件名称。

  • <Default>元素指定组件是否默认被选中。值true将组件设置为所选。在本例中,我们使用值脚本在运行时解析值。脚本文件的名称为“installscript”。

    function Component()
    {
        // default constructor
    }
    
    Component.prototype.createOperations = function()
    {
        // call default implementation to actually install README.txt!
        component.createOperations();
    
        if (systemInfo.productType === "windows") {
            component.addOperation("CreateShortcut", "@TargetDir@/bin/gammaray-launcher.exe", "@StartMenuDir@/gammaray-launcher.lnk",
                "workingDirectory=@TargetDir@");
    			
    		component.addOperation("CreateShortcut", "@TargetDir@/bin/gammaray.exe", "@StartMenuDir@/gammaray.lnk",
    		"workingDirectory=@TargetDir@");
    		
    		component.addOperation("CreateShortcut", "@TargetDir@/bin/gammaray-client.exe", "@StartMenuDir@/gammaray-client.lnk",
    		"workingDirectory=@TargetDir@");
    		
    		component.addOperation("CreateShortcut", "@TargetDir@/bin/gammaray-launcher.exe", "@DesktopDir@/gammaRay.lnk");
        }
    }
    

    ​ 在设计安装包时,许多复杂的安装包功能都需要在installscript.qs文件中进行设置。

2-4、创建安装程序内容并将其复制到包目录

​ 将待安装的内容存储在org.gammaray.entry组件的data目录下。(因为只有一个组件,所以将数据放在org.gammaray.entry目录)。如果有多个组件就需要在packages目录下创建多个目录。

2-5、使用binarycreator工具来创建安装程序

​ 在windows命令行上,输入:

binarycreator.exe -c config\config.xml -p packages Installer.exe

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cz80V40R-1636194459419)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\image-20211106181625993.png)]

​ (注意,这里需要指定 binarycreator.exe的运行路径)
​ 生成Installer.exe安装包。如下图所示:
[外链图片转存中...(img-zpaSY6tr-1636194459421)]

三、效果显示

​ 生成Installer.exe安装包后,点击运行。效果如下:
请添加图片描述

本文未完待续,后续将分享记录一些关于《个性化定制安装包》,《制作在线安装器》的文章!!!哈哈

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值