操作

这些操作由组件和控制脚本准备,并由安装程序执行。

注意:操作是通过线程执行的。

在内部,每个操作都有一个DO步骤,包含有关安装程序的说明,以及一个UNDO步骤,包含有关卸载程序的说明。

操作总结

下表总结了可用的操作及其语法。

操作 语法 使用
Copy "Copy" source target 将文件从源拷贝到目标。
Move "Move" source target 将文件从源移动到目标。
SimpleMoveFile "SimpleMoveFile" source target 将文件从源移动到目标。
Delete "Delete" filename 删除filename指定的文件。
Mkdir "Mkdir" path 创建文件夹路径path
Rmdir "Rmdir" path 移除文件夹路径path
CopyDirectory "CopyDirectory" sourcePath targetPath 将目录从源路径复制到目标路径。
AppendFile "AppendFile" filename text 将文本追加到filename指定的文件中。 文本被视为ASCII文本。
PrependFile "PrependFile" filename text 将文本前插到filename指定的文件中。 文本被视为ASCII文本。
Replace "Replace" file search replace 打开文件以查找search字符串,然后将其替换为replace字符串。
LineReplace "LineReplace" file search replace 打开文件以查找以search字符串开头的行,并将其替换为replace字符串。 行在搜索之前会修剪(开头结尾处移除空白)。
Execute "Execute" [{exitcodes}] command [parameter1 [parameter... [parameter10]]] 执行command指定的命令。 最多可以传递10个参数。 如果这还不够,则可以使用JavaScript字符串数组。
可选的,您可以在大括号({})列出以逗号分隔的退出代码列表,并作为第一个参数进行传递,以指定成功执行时的退出代码。 默认为"{0}"。
其他可选的命名参数为:"workingdirectory=<your_working_dir>"; "errormessage=<your_custom_errormessage>"
另外,一个特殊的参数,UNDOEXECUTE,将操作的DO步骤与UNDO步骤分开。
示例:component.addOperation("Execute", "touch", "test.txt", "UNDOEXECUTE", "rm", "test.txt")
CreateShortcut "CreateShortcut" filename linkname [arguments] 创建从filename指定的文件到linkname的快捷方式。在Windows上,这将创建一个可以包含参数的.lnk文件。此外,filename可以是HTTP或FTP URL,在这种情况下会创建URL快捷方式。当前该操作未在其他平台上实现。
CreateDesktopEntry "CreateDesktopEntry" filename "key=value[ key2=value2[ key3=value3]]]" 创建一个由freedesktop.org指定的.desktop初始化文件。 如果filename是绝对的,则桌面条目将存储在此处。否则,它将存储在$XDG_DATA_HOME/applications中指定的位置,包括由freedesktop.org定义的默认路径。 键值对将写入文件。该文件使用UTF-8编码。
InstallIcons "InstallIcons" directory [Vendorprefix] 将目录的内容安装到freedesktop.org指定的位置。也就是说,进入$XDG_DATA_HOME/icons或$HOME/.local/share/icons。文件将从其初始位置中删除。确保在从存档中提取文件的操作之后添加此操作。如果提供了Vendorprefix,它将使用该前缀替换图标文件名中第一个破折号(-)之前的所有字符。
Extract "Extract" archive targetdirectory 提取存档文件到目标文件夹
GlobalConfig "GlobalConfig" company application key valueor"GlobalConfig" scope company application key valueor"GlobalConfig" filename key value 将键值存储在配置文件中。配置文件可以通过文件名(使用QSettings::NativeFormat,这可能是Windows注册表)来指定,也可以通过应用程序和公司名称来指定。将范围设置为"SystemScope"以在系统范围中创建一个条目。
注意:该操作使用QSettings存储键值对。 QSettings始终将反斜杠视为特殊字符,并且不提供用于读取或写入此类条目的API。在节或键名中不要使用斜杠("/"和"");反斜杠字符用于分隔子键。在Windows上,QSettings将'\'转换为'/',从而使它们相同。由于QSettings使用反斜杠字符来分隔子键,因此您不能读取或写入包含斜杠或反斜杠的Windows注册表项。如果需要,您应该使用Windows系统原生API。
EnvironmentVariable "EnvironmentVariable" key value [persistent [system]] 将环境变量键key设置为值value。如果persistent设置为true,则变量将被永久设置。当前仅在Windows上支持。如果system设置为true,则永久变量将设置为系统范围的,而不仅仅是当前用户。请注意,如果将路径设置为环境变量,请使用'\'作为分隔符,例如:@Targetdir@\lib\system。
RegisterFileType "RegisterFileType" extension command [description [contentType [icon]]]. 用extension注册要通过command打开的文件类型。可选的,您可以指定描述,内容类型和图标。当前仅在Windows上支持。
ConsumeOutput "ConsumeOutput" installerKeyName executablePath processArguments 将运行带有参数processArguments的路径executePath上的可执行文件的输出保存到installerKeyName指定的安装程序键。可以传递其他参数。
CreateLink "CreateLink" linkPath targetPath 在linkPath指定的位置中创建一个链接,该链接指向targetPath指定的位置。
CreateLocalRepository "CreateLocalRepository" binaryPath repoPath 在repoPath指定的目录中创建本地存储库。对于离线安装程序,将二进制数据存储在binaryPath指定的目录中。
FakeStopProcessForUpdate "FakeStopProcessForUpdate" processlist 在卸载过程中,将正在运行的进程与进程列表processlist中以逗号分隔的条目进行匹配。如果找到匹配项,则会显示一个消息框,要求用户在继续之前停止这些进程。
License "License" licenses 将licenses指定的许可证文件复制到目标文件夹中名为Licenses的子文件夹。对于在包描述文件中声明的包,将自动添加此操作。
MinimumProgress "MinimumProgress" 将进度值增加一。
SelfRestart "SelfRestart" core 重启core指定的更新程序或包管理器。
Settings "Settings" path method key value 设置或删除位于路径path中的设置文件的键值key和value,依赖以下method的值:set, remove, add_array_value, and remove_array_value.

对于满足没有覆写component::createOperations()方法的组件,会自动添加Extract,License和MinimumProgress操作。另请参见component::autoCreateOperations。

如果发生错误,您可以使用devtool手动测试操作。但是,变量无法解析,因此您需要使用绝对值。

例如,要测试复制文件:

devtool --operation DO,Copy,<source>,<target>

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

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


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

  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. 解决netcore在docker容器中连接oracle报错(timezone region not found)

    错误提示: timezone region not found错误原因:docker 容器内时区不是 CST 导致解决办法:1.在dockerfile 中增加一下命令ENV TZ=Asia/Shang ...

  2. 新书《iOS编程(第6版)》抢鲜试读

    我最近翻译了Big Nerd Ranch的<iOS编程(第6版)>.我用了大半年时间,尽可能做到通顺易懂.不足之处请大家多多指正.感谢辛苦审校的丁道骏同学. 这本书得过Jolt大奖,原书在 ...

  3. FreeNOS学习3——了解目录结构和Main函数

    下载源码的文件夹,看到里面有以下内容: 解释一下里面都有啥 lib -> 共享代码 1.libfs 文件系统(磁盘管理) 2.liballoc 内存分配和虚拟内存映射(内存管理) 3.libex ...

  4. 18.函数复习,文件处理b模式(二进制处理),文件处理其他高级玩法

    1.函数复习 # map # l = [1,2,3,4,5] # print(list(map(str,l))) # reduce # l = [1,2,3,4,5] # from functools ...

  5. 第二阶段:1.流程图:10.visio绘制泳道图

    选择跨智能 同时水平 设置好泳道图标题以及泳道名字 泳道位置可以拖拽更换 左侧有一些基本的形状 包括分隔符等等 添加分隔符并填上分隔符上面的阶段名称 左边选择形状界面 然后拖拽使用 同时可以用连接线链 ...

  6. 将 Sidecar 容器带入新的阶段

    作者 | 徐迪.张晓宇 导读:本文根据徐迪和张晓宇在 KubeCon NA 2019 大会分享整理.分享将会从以下几个方面进行切入:首先会简单介绍一下什么是 Sidecar 容器:其次,会分享几个阿里 ...

  7. `docker数据持久化volume和bind mounts两种方式

    将数据从宿主机到容器的三种方式: ,volumes:docker管理宿主机文件系统的一部分(/var/lib/docker/volumes)保存数据的最佳方式 ,bind mounts 将宿主机上的任 ...

  8. Unity3D小游戏开发之两个我踩过的坑

    最近在开发一个植物大战僵尸小游戏,今天写了一早上的代码,踩了两个坑,这两个坑的位置分别位于触发器和数据转换,写这篇博文以此来让其他程序员不要再去踩这两个坑. 1.我在做简易僵尸模型的时候,这个僵尸模型 ...

  9. SpringBoot集成Mybatis动态多数据源后,MybatisPlus的IPage失效的问题解决方案

    背景 之前做数据抽取的时候,搭了一个mybatis动态数据源切换的架子.方便他们写抽取的代码.今天同事问我,架子里面的mybatisplus的IPage失效了是什么问题.想了一下,应该是写动态数据源的 ...

  10. Elasticsearch调优篇-慢查询分析笔记

    前言 elasticsearch提供了非常灵活的搜索条件给我们使用,在使用复杂表达式的同时,如果使用不当,可能也会为我们带来了潜在的风险,因为影响查询性能的因素很多很多,这篇笔记主要记录一下慢查询可能 ...