Qt Installer Framework(缩写QIF)是Qt官方用于生成软件安装包的工具。包括Qt Creator和Qt Installer Framework自身的安装包都是由这个工具制做的。详细说明请访问QIF的官方文档。javascript
我使用的环境是Windows7 64位和Qt Installer Framework 2.0.3html
首先根据本身的平台(Linux或Windows等)去Qt官网下载Qt Installer Framework的安装包或者源码。为了简单起见,我下载是安装包。而后像普通软件那样双击安装。java
安装好后,并非一个直接可用的图形界面软件。而是提供了一些可执行的工具程序(Windows下是exe文件),而后根据规则,利用这些工具生成安装包。
假设安装在D:,则生成目录D:\QtIFW2.0.3,其中2.0.3是版本号。目录结构以下图所示。数据库
bin中包含的就是咱们须要用到的工具。最简单地,咱们只用其中一个,叫binarycreator.exewindows
doc中包含帮助文档。文档的格式是网页(html)。也能够去官方网站上查看文档。文档是英文。不过很详细。app
examples中包含了不少Qt Installer Framework的例子。初学者只须要将例子做为模板,按照本身的状况修改便可。工具
Licenses中包含了Qt Installer Framework的Licenses,例如LGPL等。网站
用QIF生成安装包时,必须先按照规范创建目录结构。
参考examples中的目录结构,例如examples/tutorial目录中的结构以下:ui
规范的目录结构中,包含一个config文件夹和一个packages文件夹。其中config文件夹中只包含一个config.xml文件,用于描述软件以及安装包的一些信息。packages文件夹包含了安装包的信息描述、行为描述以及数据。其中,packages中的每个子文件夹都表示不一样的软件,或者软件的一个模块或者部件,例如com.vendor.product一、com.vendor.product2等等。
其结构可能以下命令行
-packages - com.vendor.root - data - meta - com.vendor.root.component1 - data - meta - com.vendor.root.component1.subcomponent1 - data - meta - com.vendor.root.component2 - data - meta
对于简单的软件,可能只有一个模块,对应一个文件夹。
每一个子文件夹下都有两个文件夹data和meta,前者包含了全部软件的数据,包括可执行文件、连接库文件、配置文件等等,将全部这些文件压缩成.7z压缩包后,放入此文件夹;后者包含了至少3个文件,installscript.qs、license.txt、package.xml,分别用于描述安装行为、许可信息、模块或软件的描述(用于选择模块的页面上),其中license.txt文件名可变,只须要在脚本中作相应修改便可。
config/config.xml定义了安装程序的行为。
例子以下:
<?xml version="1.0" encoding="UTF-8"?> <Installer> <Name>Your App</Name> <Version>1.0.0</Version> <Title>Your App Installer</Title> <Publisher>You</Publisher> <StartMenuDir>Your App</StartMenuDir> <TargetDir>@HomeDir@/Your App</TargetDir> </Installer>
其中各个标签的含义以下:
config.xml支持的标签不少,不过多数都是可选的,只有上述这些是必须的。请参考官方文档,根据须要添加标签。
data文件夹下包含了你要发布的软件的所有数据文件,包括可执行文件、连接库文件、数据库、配置文件等等。将全部文件用.7z格式打包后,放在data文件夹下便可。
installscript.qs的语言相似于javascript,用于定义安装软件包的行为(若是软件有多个组件,每一个分别配置),例如是否默认选中、是否生成开始菜单快捷方式、是否生成桌面快捷方式、是否有额外的安装步骤须要添加到常规步骤中。具体说明请参考examples中的例子以及官方文档。
将软件有关的许可信息,写在此文件中,会在安装过程当中显示并要求用户赞成。
文件名称能够修改,不过修改事后要修改package.xml中对应的脚本。
meta/package.xml定义了安装包在处理此部件时要显示的信息。
例子以下:
<?xml version="1.0" encoding="UTF-8"?> <Package> <DisplayName>The main component</DisplayName> <Description>the main component of your app</Description> <Version>1.0.0-1</Version> <ReleaseDate>2016-06-01</ReleaseDate> <Name>com.vendor.product</Name> <Licenses> <License name="Your App Agreement" file="license.txt" /> </Licenses> <Default>script</Default> <Script>installscript.qs</Script> <UserInterfaces> <UserInterface>page.ui</UserInterface> </UserInterfaces> </Package>
其中各个标签的含义以下:
一样地,支持的标签不少,不过多数都是可选的,上述这些也不必定是必须的。请参考官方文档,根据须要添加标签。
完成上述准备工做后,使用binarycreator.exe工具生成安装包。
须要在命令行中操做。在开始菜单中搜索cmd,或按下win+r输入cmd回车,打开命令行。转到刚才准备好的目录中。
例如:
C:\> D: D:\> cd QtIFW2.0.3\examples\yourapp D:\ ..\..\bin\binarycreator.exe -c config\config.xml -p packages YourInstaller.exe
其中,路径必定要对,YourInstaller.exe是安装包文件名,换成你想要的名称便可。