Qt Installer Framework翻译(7-2)
包文件夹
安装程序包含的组件,要么是内嵌的,要么可以从远程存储库加载。在这两种情况下,都需要为组件使用一种安装程序可以读取的文件格式和结构。
包文件夹结构
将所有组件放在相同的根文件夹中,即包文件夹。该文件夹的名称充当类似于域的标识符,用于标识所有组件。例如,com.vendor.root
在根文件夹中,创建名为data和meta的子文件夹。
包文件夹结构如下所示:
-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
元文件夹
元文件夹包含多个文件,用于指定部署和安装过程的设置。安装程序不提取这些文件。该文件夹必须至少包含一个包信息文件,以及您在包信息文件中引用到的所有文件,例如脚本,用户界面文件和翻译文件。
包信息文件语法
package.xml文件是组件的主要信息来源。以下是示例:
<?xml version="1.0"?>
<Package>
<DisplayName>QtGui</DisplayName>
<Description>Qt gui libraries</Description>
<Description xml:lang="de_de">Qt GUI Bibliotheken</Description>
<Version>1.2.3</Version>
<ReleaseDate>2009-04-23</ReleaseDate>
<Name>com.vendor.root.component2</Name>
<Dependencies>com.vendor.root.component1</Dependencies>
<Virtual>false</Virtual>
<Licenses>
<License name="License Agreement" file="license.txt" />
</Licenses>
<Script>installscript.qs</Script>
<UserInterfaces>
<UserInterface>specialpage.ui</UserInterface>
<UserInterface>errorpage.ui</UserInterface>
</UserInterfaces>
<Translations>
<Translation>sv_se.qm</Translation>
<Translation>de_de.qm</Translation>
</Translations>
<DownloadableArchives>component2.7z, component2a.7z</DownloadableArchives>
<AutoDependOn>com.vendor.root.component3</AutoDependOn>
<SortingPriority>123</SortingPriority>
<UpdateText>This changed compared to the last release</UpdateText>
<Default>false</Default>
<ForcedInstallation>false</ForcedInstallation>
<Essential>false</Essential>
<Replaces>com.vendor.root.component2old</Replaces>
</Package>
包信息文件元素总结
| 元素 | 描述 |
|---|---|
| DisplayName | 组件的可读名称。强制项。可将组件名称的翻译指定为DisplayName的附加标签,并将xml:lang属性设置为正确的语言环境。 |
| Description | 组件的可读描述。强制项。可以参考DisplayName标签类似地指定翻译。如果找不到与语言环境匹配的本地化翻译,并且存在未翻译的版本,则将使用该版本。否则,将不会显示该语言环境的描述。用户可点击的外部链接,例如组件的主页,可以包括在组件描述中,通过指定如下URL地址:{external-link}='https://www.qt.io/'。 该URL必须有效,并且包含所需资源的完整路径。 |
| Version | 组件版本的格式:[0-9]+((\.|-)[0-9]+)*,例如1-1;1.2-2; 3.4.7。强制项。如果一个包需要显示子包的版本号而不是它自己的版本号(由于子包的分组),则可以使用需要继承该版本号的包名称,来指定InheritVersionFrom属性。 |
| ReleaseDate | 组件版本发布的日期。强制项。 |
| Name | 组件的类域标识。强制项。 |
| Dependencies | 逗号分隔的组件标识符列表,此组件的依赖项。可选的,你可以指定版本号,用破折号(-)分隔。您可以在版本号前使用比较运算符(=,>,<,>=或<=)。请记住,必须使用字符引用"<"来转义左尖括号(使用"<"代替"<",使用"<="代替"<=")。可选项。有关更多信息,请参见组件依赖章节。 |
| AutoDependOn | 逗号分隔的组件标识符列表,本组件自动依赖。仅当所有指定依赖满足时,才安装本组件。如果其中某个组件自动依赖于其他组件,则组件树中该组件旁边的复选框将不可见。复选框自动进行选择。如果以前未安装过本组件,则仅当列表中的所有组件都被选择安装时,才可选择安装本组件。 如果已经安装了本组件,当列表中选择了至少一个组件进行卸载时,则该组件也将被选择进行卸载。 有关更多信息,请参见组件依赖章节。 |
| Virtual | 设置为true可以从安装程序中隐藏该组件。 请注意,在根组件上设置此功能无效。 |
| SortingPriority | 树中组件的优先级。 该树从最高优先级到最低优先级排序,最高优先级在顶部。 |
| Licenses | 用户将接受的许可协议列表。要添加多个许可证,请添加多个<License>子元素,每个都指定许可证名称和文件。 许可证文件支持ASCII和UTF8文件格式。 如果列出了此组件的翻译,安装程序还将查找翻译后的许可证。它们需要与原始许可证文件同名,但具有附加的语言环境标识符。例如,如果许可证文件名为license.txt,并指定了德语翻译,则安装程序还将包含license_de_de.txt文件(在德语系统上安装时显示)。 |
| Script | 正在加载的脚本的文件名。可选项。有关更多信息,请参见添加操作章节。 |
| UserInterfaces | 要加载的页面列表。 要添加多个页面,请添加多个<UserInterface>子元素,每个指定页面的文件名。 可选项。有关更多信息,请参见添加页面章节。 |
| Translations | 要加载的翻译文件列表。 要添加多种语言变体,请指定多个<Translation>子元素,每个指定一种语言变体的文件名。可选项。有关更多信息,请参见翻译页面章节。 |
| UpdateText | 描述,添加到组件描述中。如果这是对组件的更新。可选的。 |
| Default | 可能的值为:true,false和script。设置为true,则预先选择安装程序中的组件。这仅对没有可见子组件的组件有效。 true和false会被直接评估,而script在运行时解析。 在此文件中,添加脚本名,作为<Script>元素的一个值。有关示例脚本,请参见选择默认内容章节。 |
| Essential | 将包标记为必要的,用于强制重启MaintenanceTool。如果某个必要组件有可用的更新,则包管理器将保持禁用状态,直到该组件被更新为止。运行更新程序时,将自动安装新引入的必要组件。 |
| ForcedInstallation | 确定必须始终安装该包。用户无法在安装程序中取消选择。 |
| Replaces | 要替换的逗号分隔的组件列表。可选项。 |
| DownloadableArchives | 列出供在线安装程序下载的数据文件(用逗号分隔)。如果组件内部有一些数据,并且package.xml和/或脚本没有DownloadableArchives值,则repogen工具会自动注册找到的数据。 |
| RequiresAdminRights | 设置为true,如果需要使用提升的权限来安装包。可选项。 |
| Checkable | 设置为false,如果要隐藏项目的复选框。当仅应选择几个子组件而不是全部时,这很有用。可选项。 |
| ExpandedByDefault | 设置为true,如果要在树结构中默认扩展此项。可选项。 |
组件依赖
组件可以依赖一个或多个真实或者虚拟的组件。依赖通过组件标识或者可选的组件版本来定义。使用破折号(-)将版本号与标识符分开。
可以使用比较运算符(=,>,、<(<),>=或<=(<=))作为版本号的前缀,以指示包的版本号,并与所需版本进行比较,并且必须等于、大于、小于、大于等于依赖项的版本号。如果没有给出比较运算符,则默认为=。
数据文件夹
数据文件夹包含安装程序在安装过程中要提取的内容。您必须将数据打包为.7zip存档(.7z)。您可以使用Qt Installer框架随附的archivegen工具,也可以使用其他生成7zip存档的工具。
原创造福大家,共享改变世界
献出一片爱心,温暖作者心灵

Qt Installer Framework翻译(7-2)的更多相关文章
- Qt Installer Framework翻译(5-4)
自定义安装程序 您可以使用脚本通过以下方式来自定义安装程序: > 添加Qt Installer Framework操作,该操作由脚本提供,并由安装程序执行. > 添加新页面,该页面由您在p ...
- Qt Installer Framework翻译(7-6)
工具 Qt Installer Framework包含以下工具: > installerbase > binarycreator > repogen > archivegen ...
- Qt Installer Framework翻译(3-1)
初始化安装 下图说明了安装应用程序的默认工作流程: 本节使用在macOS上运行的Your Application Installer示例来说明默认工作流程.安装程序具有本地化外观,并可感知每个受支持的 ...
- Qt Installer Framework翻译(1)
IFW概览 Qt Installer Framework 提供了一组工具和程序来创建安装程序,并在不重写源代码的情况下将它们部署到所有受支持的桌面 Qt 平台上.安装程序具有本地化外观,并且可以感知运 ...
- Qt Installer Framework翻译(4)
教程:创建安装程序 本教程描述如何为一个小项目创建一个简单的安装程序: 本节描述创建安装程序所必须完成的步骤: 创建一个包文件夹,其中将包含所有配置文件和可安装的包. 创建一个配置文件,其中包含有关如 ...
- Qt Installer Framework翻译(7-4)
组件脚本 对于每个组件,您可以指定一个脚本,来准备要由安装程序执行的操作.脚本格式必须与QJSEngine兼容. 构造 脚本必须包含安装程序在加载脚本时创建的Component对象. 因此,脚本必须至 ...
- Qt Installer Framework翻译(7-8)
C++ API C ++ API文档是为开发Qt Installer Framework的开发人员编写的. 它描述了内部API,因此没有兼容性保证. 此外,该文档尚在开发中,因此缺少部分内容,而其他部 ...
- Qt Installer Framework翻译(0)
本人主攻C++和Qt. 以前一直看人家的博客,找资料学习.今天我也终于开博客啦. 最近在研究Qt install framework(IFW)应用程序安装框架. google也没发现有正儿八经的官方文 ...
- Qt Installer Framework翻译(7-3)
控制脚本 对于每个安装程序,您可以指定一个控制脚本,用来与安装程序的部分UI或功能进行交互.控制脚本可以在向导中添加和删除页面,更改现有页面,进行附加检查以及通过模拟用户单击来与UI交互.例如,这允许 ...
随机推荐
- 2018-2-13-Visual-studio-C#-代码使用-NotNull
title author date CreateTime categories Visual studio C# 代码使用 NotNull lindexi 2018-2-13 17:23:3 +080 ...
- 云栖大会压轴好戏 阿里云发布视频云V5计划与系列新产品
9月25 - 27日,2019云栖大会如期召开.在大会最后一天下午,阿里云智能视频云分论坛为今年的云栖大会献上了一场精彩的压轴好戏. 视频云V5计划发布 使能生态合作伙伴 会上,阿里云智能研究员金戈进 ...
- python实现单词本功能
#实现简单的单词本:# 可以添加单词和词义,当所添加的单词已经存在 让用户知道:# 查找单词,单词不存在时,让用户知道# 删除单词,当删除的单词不存在时,让用户知道# 以上功能无限制操作,直到用户输入 ...
- 011.MFC_Slider
滑块CSliderCtrl 常用函数SetLineSize() GetLineSize() SetPageSize() GetPageSize()SetRangeMax() GetRangeMax() ...
- vue基础用法
vue.js是什么 vue.js也称为vue,读音/vju/ 是一个构建用户界面的框架 是一个轻量级MVVM(Model-view-viewModel)框架,和angular,react类似,其实就是 ...
- Harbor本地镜像库安装与使用
Harbor安装很简单,不过安装以后要怎么操作,百度了好久都没有找到实操的方法,怎么从官方拉取镜像后更新到私有仓库中?这个弄了好久,一样样测试后才找到方法,对于不熟悉私有仓库的小白来说,有点坑.还好花 ...
- mysql 时间函数总结
1. 获取当前时间 select now(); // 2018-08-24 11:01:26 select unix_timestamp(); // 1535079695 总结:unix_ ...
- Maven 生命周期的概念(指令默认顺序执行)
生命周期的概念 IDEA中使用maven构建项目都集中放到了窗口右侧"Maven Projects"中,点击该区域可以直观的看到,maven中几个常用指令都归类为LifeCycle ...
- 漏洞挖掘 | 远程WWW服务支持TRACE请求
允许TRACE方法 漏洞描述 目标WEB服务器启用了TRACE方法.TRACE方法是HTTP(超文本传输)协议定义的一种协议调试方法,该方法使得服务器原样返回任何客户端请求的内容(可能会附加路由中间的 ...
- 洛谷P1037 产生数 题解 搜索
题目链接:https://www.luogu.com.cn/problem/P1037 题目描述 给出一个整数 \(n(n<10^{30})\) 和 \(k\) 个变换规则 \((k \le 1 ...