Qt installer framework学习
一、官网的介绍部分网址
http://doc.qt.io/qtinstallerframework/ifw-overview.html
二、安装界面介绍
2.1 安装界面流程

2.2 组件增加流程

2.3 组件删除流程

2.4更新组件

三、目录和文件结构介绍
3.1 config目录
<?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:版本号
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
Qt installer framework学习的更多相关文章
- Qt Installer Framework的学习(三)
Qt Installer Framework的学习(三) Qt Installer Framework的样例中.通常是这种:config目录一般放了一个config.xml文件,包括的是安装配置xml ...
- Qt Installer Framework的学习(二)
Qt Installer Framework的学习(二) Qt Installer Framework的一些操作能够使用最常见的Qt项目来表示,也就是说,书写pro文件,使用qmake执行之,除了能够 ...
- Qt Installer Framework的学习
Qt Installer Framework是Qt默认包的发布框架.它很方便,使用静态编译Qt制作而成.并且使用了压缩率很高的7z对组件进行压缩.之所以有这些好处,我才觉得值得花一点儿精力研究一下这个 ...
- 使用Qt installer framework制作安装包
一.介绍 使用Qt库开发的应用程序,一般有两种发布方式:(1)静态编译发布.这种方式使得程序在编译的时候会将Qt核心库全部编译到一个可执行文件中.其优势是简单单一,所有的依赖库都集中在一起,其缺点也很 ...
- Qt Installer Framework 使用说明(三)
目录 6.Qt Installer Framework 示例 7.参考 Reference 配置文件 Configuration File 配置文件元素的简要说明 Summary of Configu ...
- Qt Installer Framework 使用说明(二)
目录 4.教程: 创建一个安装程序 创建软件包目录 创建配置文件 创建程序包信息文件 指定组件信息 指定安装程序版本 添加许可证 选择默认内容 创建安装程序内容 创建安装程序二进制文件 5.创建安装程 ...
- Qt Installer Framework 使用说明(一)
目录 Qt Installer Framework 使用说明 1.Qt Installer Framework概述 选择安装包类型 促进更新 提供安装内容 2.入门指南 支持的平台 从源代码构建 支持 ...
- Qt Installer Framework实战
Qt Installer Framework是Qt发布的安装程序支持框架,只需要简单的配置就可以生成安装文件,同时可以通过javascript脚本来定制安装过程. 目录结构 config packag ...
- 使用Qt Installer Framework制作软件安装包
概述 Qt Installer Framework(缩写QIF)是Qt官方用于生成软件安装包的工具.包括Qt Creator和Qt Installer Framework自身的安装包都是由这个工具制作 ...
随机推荐
- 高精度乘法模板(luogu1303)
洛谷1303 //luogu1303,不压位的高精度乘法 #include <cstdio> #include <iostream> using namespace std; ...
- [CSP-S模拟测试]:联(小清新线段树)
题目描述 由于出题人懒所以没有背景.一个无限长的$01$序列,初始全为$0$,每次选择一个区间$[l,r]$进行操作,有三种操作:$\bullet 1\ l\ r$将$[l,r]$中所有元素变成$1$ ...
- Sqlachemy的警告SAWarning: The IN-predicate on "sns_object.BIZ_ID" was invoked with an empty sequence. This results in a contradiction, which nonetheless can be expensive to evaluate.
我在使用db_session.query,查询的时候idlist是个空值时候,执行下面的语句就会出现警告.其中后面delete(synchronize_session=False)是删除前面的一堆查询 ...
- jmeter添加自定义扩展函数之MD5加密
1,打开eclipse,新建maven工程,在pom中引用jmeter核心jar包,具体请看---https://www.cnblogs.com/guanyf/p/10863033.html---,这 ...
- iphone-命令行编译之--xcodebuild
参考 : https://www.cnblogs.com/xiaodao/archive/2012/03/01/2375609.html
- ExecutorException: A query was run and no Result Maps were found for the Mapped Statement ‘com.win.mall.dao.CartMapper.test’. It’s likely that neither a Result Type nor a Result Map was specified.
ExecutorException: A query was run and no Result Maps were found for the Mapped Statement 'com.win.m ...
- iview+vue 使用中遇到的问题(表格、select、radio)
1.iview+vue中,对表头的动态设置: iview表头若是需要动态设置,可以有两个方法,第一种: children: [ { title: '2017年', align: 'center', k ...
- linux的echo命令整理
linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法 echo命令的功能是在显示器上显示一段文字,一般起到一个提示 ...
- 基于Diff机制的多个状态合并
1. 场景 假设一个系统System在某一时刻的状态可以用State A来表示[State里面包含着一些元素的集合]: 1: State A = [element_0, element_1,……,el ...
- 怎样使用haskell编写应用程序
参考:http://stackoverflow.com/a/9153617 http://www.haskell.org/haskellwiki/How_to_write_a_Haskell_prog ...