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交互.例如,这允许 ...
随机推荐
- BIO、NIO、AIO 个人总结
BIO(blocking io) BIO即为阻塞IO,在网络编程中,它会在建立连接和等待连接的对端准备数据阶段进行阻塞.因此为了支撑高并发的用户访问,一般会为每一个socket 连接分配一个线程.但使 ...
- Python10_代码规范和可读性
养成好的编程习惯和方法对提升代码可读性至关重要. 1.类.模块.包:不要用下划线,命名要简短 2.类:命名最好以大写开头 3.模块.包:用小写单词 4.变量.函数.方法:可以用下划线提高可读性,尽量都 ...
- Eclipse 代码快捷键模板(一)
话不多说,自行google. 设置快捷键,打开eclipse,依次打开:Window -> Preferences -> General -> Key. 设置代码快捷键,打卡ecli ...
- sql查询分类和所有子类
select * from [JianDu].[dbo].[ZuZhiJiGou] where id = 64 --查询节点 union allSELECT TOP 1000 a.* FROM [Ji ...
- asp.net core 3.x Endpoint终结点路由1-基本介绍和使用
前言 我是从.net 4.5直接跳到.net core 3.x的,感觉asp.net这套东西最初是从4.5中的owin形成的.目前官方文档重点是讲路由,没有特别说明与传统路由的区别,本篇主要介绍终结点 ...
- javascript继承的几种方法
继承是面向对象编程中很重要的概念,在其它面向对象的语言中大都很简单,例如java中有关键词extends来实现 javascript语言在ES6也新增了extends关键词可以实现继承,用法与java ...
- [梁山好汉说IT] 以水浒传为例讲解贝叶斯定理
0x00 摘要 看看呼延灼如何利用贝叶斯定理来判断 "自己是否是公明哥哥的心腹". 0x01 IT概念 1. 贝叶斯定理 贝叶斯定理是用来解决"逆概率"问题的, ...
- 洛谷$P4126\ [AHOI2009]$最小割 图论
正解:网络流+$tarjan$ 解题报告: 传送门$QwQ$ $umm$最小割的判定问题$QwQ$,因为并不会做是看的题解才会的,所以也没什么推导过程直接放结论趴$QwQ$ 首先跑个最大流,然后有. ...
- VS/Xamarin Android入门一
一.安装和配置(以Visual Studio Pro 2015为例) Visual Studio2015直接提供了这个插件的选择项,稍微提示一下,如果要安装的话,最好准备好十个小时的打算,而且是网速不 ...
- Mybatis入门程序编写
执行原理 入门程序编写 1.pom.xml 文件 <dependencies> <dependency> <groupId>mysql</groupId> ...