使用Qt Installer Framework製做軟件安裝包

概述

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

bin中包含的就是咱們須要用到的工具。最簡單地,咱們只用其中一個,叫binarycreator.exewindows

二、doc

doc中包含幫助文檔。文檔的格式是網頁(html)。也能夠去官方網站上查看文檔。文檔是英文。不過很詳細。app

三、examples

examples中包含了不少Qt Installer Framework的例子。初學者只須要將例子做爲模板,按照本身的狀況修改便可。工具

四、Licenses

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.xml

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>

其中各個標籤的含義以下:

  • < Name> 軟件名稱
  • < Version> 版本號
  • < Title> 安裝程序窗口標題
  • < Publisher> 發佈者名稱
  • < StartMenuDir> 要生成的windows開始菜單目錄
  • < TargetDir> 默認安裝路徑

config.xml支持的標籤不少,不過多數都是可選的,只有上述這些是必須的。請參考官方文檔,根據須要添加標籤。

三、data

data文件夾下包含了你要發佈的軟件的所有數據文件,包括可執行文件、連接庫文件、數據庫、配置文件等等。將全部文件用.7z格式打包後,放在data文件夾下便可。

四、meta/installscript.qs

installscript.qs的語言相似於javascript,用於定義安裝軟件包的行爲(若是軟件有多個組件,每一個分別配置),例如是否默認選中、是否生成開始菜單快捷方式、是否生成桌面快捷方式、是否有額外的安裝步驟須要添加到常規步驟中。具體說明請參考examples中的例子以及官方文檔。

五、meta/license.txt

將軟件有關的許可信息,寫在此文件中,會在安裝過程當中顯示並要求用戶贊成。
文件名稱能夠修改,不過修改事後要修改package.xml中對應的腳本。

六、meta/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>

其中各個標籤的含義以下:

  • < DisplayName> 顯示的名稱
  • < Description> 描述
  • < Version> 部件的版本號
  • < ReleaseDate> 發行日期
  • < Name> 部件名稱(與文件夾名一致)
  • < Licenses> 許可信息名稱以及許可文件名
  • < Script> 腳本文件
  • < UserInterfaces> 額外的界面(若是須要的話,並且須要去installscript.qs中配置)

一樣地,支持的標籤不少,不過多數都是可選的,上述這些也不必定是必須的。請參考官方文檔,根據須要添加標籤。

製做安裝包

完成上述準備工做後,使用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是安裝包文件名,換成你想要的名稱便可。

相關文章
相關標籤/搜索