一、官網的介紹部分網址
http://doc.qt.io/qtinstallerframework/ifw-overview.html
二、安裝界面介紹
2.1 安裝界面流程

介紹>>選擇路徑>>選擇組件>>接收協議>>選擇窗口程序組(注冊表名字)>>安裝
2.2 組件增加流程
開始>>選擇額外組件>>安裝
2.3 組件刪除流程
開始>>刪除
2.4更新組件
開始>>選擇要升級的組件>>安裝
三、目錄和文件結構介紹
3.1 config目錄
以tutorial為例,在config子目錄下,有config.xml文件,該文件用來自定義向導UI和行為。
<?xml version="1.0" encoding="UTF-8"?> <Installer> <Name>你開發的軟件的名字</Name> <Version>1.2.3</Version> <Title>安裝向導的名字</Title> <Publisher>版權所有方名字(比如你的公司)</Publisher> <StartMenuDir>開始菜單的名字</StartMenuDir> <TargetDir>缺省的指定安裝目錄</TargetDir> </Installer>
<Title>指定了顯示在內容上的標題的安裝名字 <NAME>是標題下面的文本框中的文字 <Version>指定應用的版本號 <Publisher>在控制面板中顯示的名字 <StartMenuDir>開始菜單中的名字 <TargetDir>默認的指定目錄,當前用戶的目錄下安裝
3.2 package文件夾目錄
package文件夾的目錄形式為
-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
root相當於根節點控件,增加文件夾就是增加組件了
package文件夾下有data和meta兩個文件夾,data是需要打包的組件內容,metal是一些控制腳本文件。
<?xml version="1.0" encoding="UTF-8"?> <Package> <DisplayName>The root component</DisplayName> <Description>Install this example.</Description> <Version>0.1.0-1</Version> <ReleaseDate>2010-09-21</ReleaseDate> <Name>com.vendor.product</Name> <Licenses> <License name="Beer Public License Agreement" file="license.txt" /> </Licenses> <Default>script</Default> <Script>installscript.qs</Script> </Package>
<DisplayName>組件列表名字
<Description>顯示組件的書名內容
<Version>如果開啟更新,就可以用
<Licenses>許可證
<Default>選的組件如何運行的方式?這里用了scrip
<Script>JavaScript script file腳本名字
DisplayName:能被人類讀的組件名字, Description:組件的描述 Version:版本號 ReleaseDate:組件發布的版本日期,必須 Name:組件的身份標識,必須 Dependencies:組件的依賴,用逗號分隔列表,用橫杠區分版本號,用<代替"<" AutoDependOn: Virtual:設置為真隱藏安裝組件,注意設置根組件上是無效的 SortingPriority:組件的優先級樹,樹的排序從高到底,高的在最頂上 Licenses:列出需要用戶同意的license,用name和file指定license文件,支持ASCII和UTF8 Script:需要加載的腳本文件名 UserInterfaces:要加載的頁列表,<UserInterface>子元素 Translations:國際化語言的列表文件 Updatetext:如何這個給組件更新的,那就把這個添加進描述中,可選。 Default:可以的值是true,false和script。設置true預選組件,這個只會影響沒有子組件的組件。 false應該是關了,腳本在運行時解析。在<Script>增加腳本名字, Essential:重啟MaintenanceTool工具的必要條件,如果有一個可以更新的基本的組件,包管理器將保持禁用,直到該組件被更新。新引入的基本組件是在運行updater時自動安裝的。 ForcedInstallation:確定必須安裝的包,終端用戶不能取消在安裝過程中 Replaces:用逗號列出組件的替換,可選 DownloaddableArchives:在線安裝需要下載的文件 RequiresAdminRights:如果設置為true,包安裝需要在高權限下,可選 Checkable:如果你想要隱藏checkbox的item,選擇false。當只要選擇部分子組件時,會很有效
3.3 script文件
必須包含
function Component()
{
// constructor
}
此處為安裝的程序,在開始菜單處設置連接;
//"@TargetDir@/sunshine.exe"指定exe的路徑,//"@StartMenuDir@/sunshine.lnk"指定鏈接 Component.prototype.createOperations = function() { // call default implementation to actually install README.txt! component.createOperations(); if (installer.value("os") === "win") { component.addOperation("CreateShortcut", "@TargetDir@/test.exe", "@StartMenuDir@/test.lnk"); } }
四、構建安裝包
<location-of-ifw>\binarycreator.exe -t <location-of-ifw>\installerbase.exe -p <package_directory> -c <config_directory>\<config_file> <installer_name>
我的使用方法:
C:\Qt\QtIFW2.0.3\bin>binarycreator.exe -p ./Mytutorial/packages -c ./Mytutorial/config/config.xml WeiHua_NetWork_Windows_2018.1.26.exe
五、配置依賴文件
從開始菜單-->Qt 5.7.0-->5.7-->MinGW 5.3.0 (32-bit)-->Qt 5.7 for Desktop (MinGW 5.3.0 32 bit),可以打開 Qt 命令行,從這里就可以執行 windeployqt 工具。
windeployqt myapp.exe
