创建在线安装程序

联机安装程序获取二进制安装文件中的内容以及存储库描述(Updates.xml)。请创建一个存储库,并将其上传到Web服务器。然后在用于创建安装程序的config.xml文件中指定存储库的位置。

创建存储库

使用repogen工具创建一个package文件夹中所有包的在线存储库:

repogen.exe -p <package_directory> <repository_directory>

例如,要创建仅包含org.qt-project.sdk.qt和org.qt-project.sdk.qtcreator的存储库,请输入以下命令:

repogen.exe -p packages -i org.qt-project.sdk.qt,org.qt-project.sdk.qtcreator repository

存储库创建后,将其上传到Web服务器。您必须在安装程序配置文件中指定存储库的位置。

配置存储库

安装程序配置文件(config.xml)中的<RemoteRepositories>元素可以包含多个存储库的列表。每个存储库都可以有以下设置:

<Url>,它指向可用组件的列表。

<Enabled>,值为0表示禁用此存储库。

<Username>,受保护存储库上使用的用户名。

<Password>,受保护存储库上使用的密码。

<DisplayName>,可选项,使用字符串来代替URL。

URL需要指向列出可用组件的Updates.xml文件。例如:

<RemoteRepositories>
<Repository>
<Url>http://www.example.com/packages</Url>
<Enabled>1</Enabled>
<Username>user</Username>
<Password>password</Password>
<DisplayName>Example repository</DisplayName>
</Repository>
</RemoteRepositories>

仅当安装程序可以访问存储库时,才能正常工作。如果在安装后访问存储库,则维护工具将拒绝安装。但是,仍然可以卸载。默认情况下,可以启用或禁用存储库。对于需要身份验证的存储库,也可以在此处设置详细信息,尽管不建议在此处输入密码,因为它以明文形式保存。如果此处不设置身份验证用的信息,那么会在运行时以对话框的形式要求输入。用户可以在运行时解决这些设置。

配置存储库类别

安装程序配置文件(config.xml)中的元素可以包含多个元素的列表。 元素内的每个元素都被视为一个类别。每个类别都可以具有,,元素和一些元素。存储库类别显示在组件选择页面的左侧,作为一个组件组件选择部件:

默认情况下,组件选择部件中仅显示没有类别的存储库。检查一个或几个存储库,并点击Fetch按钮,将更新部件,以显示来自所选类别存储库的内容。存储库类别中的组件被标记为不稳定(unstable),这意味着您可以安装其他组件,尽管某些组件缺少依赖项,或者脚本错误等。有关不稳定组件的更多信息,请参阅配置文件元素总结章节。

创建存储库类别的示例:

<RepositoryCategories>
<RemoteRepositories>
<Displayname>Category 1</Displayname>
<Preselected>true</Preselected>
<Tooltip>Tooltip for category 1</Tooltip>
<Repository>
<Url>http://www.example.com/packages</Url>
<Enabled>1</Enabled>
<Username>user</Username>
<Password>password</Password>
<DisplayName>Example repository</DisplayName>
</Repository>
</RemoteRepositories>
</RepositoryCategories>

创建安装程序二进制文件

要使用binarycreator工具创建在线安装程序,请输入以下命令:

<location-of-ifw>\binarycreator.exe -t <location-of-ifw>\installerbase.exe -p <package_directory> -c <config_directory>\<config_file> -e <packages> <installer_name>

例如,输入以下命令以创建名为SDKInstaller.exe的安装程序二进制文件,该文件将不包含org.qt-project.sdk.qt和org.qt-project.qtcreator,因为这些包是从远程存储库下载的:

binarycreator.exe -p installer-packages -c installer-config\config.xml -e org.qt-project.sdk.qt,org.qt-project.qtcreator SDKInstaller.exe

减少安装程序大小

即使是从Web服务器获取组件,默认情况下,binarycreator也将它们添加到安装程序二进制文件中。但是,当安装程序检查Web服务器上的更新时,如果没有新版本可用,则用户无需下载。

或者,您可以创建一个不包含任何数据的在线安装程序,全部从Web服务器获取。使用binarycreator工具的-n参数,则仅添加根组件。通常根组件为空,因此仅添加根的XML描述。

有关所拥有选项的更多信息,请参见binarycreator参数总结章节。


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

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


Qt Installer Framework翻译(5-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-2)

    包文件夹 安装程序包含的组件,要么是内嵌的,要么可以从远程存储库加载.在这两种情况下,都需要为组件使用一种安装程序可以读取的文件格式和结构. 包文件夹结构 将所有组件放在相同的根文件夹中,即包文件夹. ...

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

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

随机推荐

  1. Koa搭建简单服务器

    1. dependencies "co-mysql": "^1.0.0", "koa": "^2.7.0", " ...

  2. 节点列表和HTML集合

    getElementsByName()和getElementByTagName()返回的都是NodeList集合. 而document.images和document0.forms的属性为HTMLCo ...

  3. 【58.75%】【BZOJ 1087】[SCOI2005]互不侵犯King

    Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 3040  Solved: 1786 [Submit][Status][Discuss] Descri ...

  4. 2019-2-11-WPF-列表自动换行

    title author date CreateTime categories WPF 列表自动换行 lindexi 2019-02-11 08:55:31 +0800 2019-02-11 08:5 ...

  5. read、write 与recv、send区别 gethostname

    recv相对于read有什么区别呢? 其实它跟read函数功能一样,都可以从套接口缓冲区sockfd中取数据到buf,但是recv仅仅只能够用于套接口IO,并不能用于文件IO以及其它的IO,而read ...

  6. lumen 笔记一

    可以用config()函数和evn()函数来获取 .evn里面的配置内容 config('app.timezone') 获取配置config(['app.timezone' => 'China/ ...

  7. Hibernate各种查询方式及查询策略(转)

    转自:https://www.cnblogs.com/xujingyang/p/6734203.html 在了解Hibernate的基本知识后,重点让我们看下相关查询方式和查询优化策略吧! 话不多说, ...

  8. HDU 2102 A计划 DFS与BFS两种写法 [搜索]

    1.题意:一位公主被困在迷宫里,一位勇士前去营救,迷宫为两层,规模为N*M,迷宫入口为(0,0,0),公主的位置用'P'标记:迷宫内,'.'表示空地,'*'表示墙,特殊的,'#'表示时空传输机,走到这 ...

  9. Android Drawable - Shape Drawable使用详解(附图)

    TIPS shape图形 –简单介绍 shape图形 –如何画? shape图形 –参数详细解析 shape图形 –如何用? shape图形 –实际开发应用场景 shape图形简单介绍 用xml实现一 ...

  10. 【转载】你未必知道的49个CSS知识点

    原文链接: https://juejin.im/post/5d3eca78e51d4561cb5dde12 虽然大多数我都会,嘻嘻.不过案例太生动了,值得收藏.