Qt Installer Framework使用教程:

这篇具有很好参考价值的文章主要介绍了Qt Installer Framework使用教程:。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

步骤一:
    下载并安装Qt Installer Framework工具
    http://download.qt.io/official_releases/qt-installer-framework/ 
    将安装目录添加到环境变量,如安装D盘时D:\Qt\QtIFW-4.5.0\bin
步骤二:
    将测试例子(如D:\Qt\QtIFW-4.5.0\examples\tutorial)拷贝到某一目录如:D:\Qt\test                           config 目录: 配置                                                                                                                             packages 目录: 安装包,里面可以有多个文件夹,一个文件夹代表一个安装组件(比如一个程序需要自身和数据库软件。就分为两个组件),每个文件夹下分data 和 meta 目录,data就是程序压缩包,meta是配置相关      
步骤三:
    修改版本号(config\config.xml, packages\com.vendor.product\meta\package.xml)
    修改程序packages\com.vendor.product\data\xxx包中要安装的程序为最新。
步骤四:
    打开Qt 5.12.4(MSVC2017 64-bit) 切换目录到打包文件夹: D:\Qt\test。
    运行命令:binarycreator --offline-only -c config/config.xml -p packages xc2000-V1.0.3.0.exe

一些配置文件与函数说明:
Config目录中配置文件说明:
元素                        是否必需    描述
Name                        必需        正在安装的产品名称
Version                        必需        安装软件的版本,格式要求:`[0-9]+((.
Title                        可选        标题栏上显示的安装程序的名称
Publisher                    可选        软件发行商(如Windows控制面板中所示)
ProductUrl                    可选        指向包含您网站上产品信息的网页的网址
Icon                        可选        自定义安装程序图标的文件名。通过附加'.icns'(OS X),'.ico'(Windows)或'.png'(Unix)后缀来查找实际文件。 已弃用 ,请改用<InstallerApplicationIcon>或<InstallerWindowIcon>
InstallerApplicationIcon    可选        自定义安装程序图标的文件名。 通过附加'.icns'(OS X),'.ico'(Windows)后缀来查找实际文件。 在Unix上没有此功能
InstallerWindowIcon            可选        安装程序应用程序的自定义窗口图标的文件名(PNG格式)
Logo                        可选        用作QWizard::LogoPixmap的徽标的文件名
Watermark                    可选        用作QWizard::WatermarkPixmap的水印的文件名
Banner                        可选        用作QWizard::BannerPixmap(横幅)的文件名(仅由ModernStyle使用)
Background                    可选        用作QWizard::BackgroundPixmap的图像的文件名(仅由MacStyle使用)
WizardStyle                    可选        设置要使用的向导样式 ("Modern"(现代), "Mac", "Aero"或"Classic"(经典))
WizardDefaultWidth            可选        像素单位的默认向导(Wizard)宽度,设置的横幅图像(Banner Image)将覆盖在此
WizardDefaultHeight            可选        以像素为单位设置向导的默认高度,设置水印图像将覆盖在此
TitleColor                    可选        设置标题和字幕的颜色(采用HTML颜色代码,例如“#88FF33”)
RunProgram                    可选        如果用户接受操作,则在安装程序完成后执行命令。要提供应用程序的完整路径
RunProgramArguments            可选        传递给<RunProgram>中指定的程序的参数。您可以添加多个<Argument>子元素,每个子元素为<RunProgram>指定一个参数
RunProgramDescription        可选        安装后运行程序的复选框旁边显示的文本。如果<RunProgram>设置,但没有提供说明,用户界面将显示运行程序<Name>替代
StartMenuDir                可选        Windows开始菜单中产品的默认程序组名称
TargetDir                    可选        安装的默认目标目录。在Linux上,这通常是用户的主目录(/home/username/)
AdminTargetDir                可选        具有管理员权限的安装的默认目标目录。仅在Linux上可用,通常不建议在管理员用户的主目录中安装
RemoteRepositories            可选        远程存储库列表。此元素可以包含多个<Repository>子元素,每个子元素包含指定用于访问存储库的URL的<Url>子元素。有关更多信息,请参阅配置存储库
MaintenanceToolName            可选        生成的维护工具的文件名。默认为maintenancetool。将附加平台特定的可执行文件扩展名
MaintenanceToolIniFile        可选        用于生成维护工具配置的文件名。默认为MaintenanceToolName.ini
RemoveTargetDir                可选        如果卸载时不删除目标目录(TargetDir),请设置为false
AllowNonAsciiCharacters        可选        如果安装路径可以包含 非ASCII字符 ,请设置为true
RepositorySettingsPageVisible    可选    设置为false来 隐藏 设置对话框中的 存储库设置页面
AllowSpaceInPath            可选        如果安装路径 不能包含空格字符 ,请设置为false
DependsOnLocalInstallerBinary    可选    如果要禁止从外部资源(如网络驱动器)安装,请设置为true。 这可能有意义,例如,安装程序非常大。该选项仅在Windows上使用
TargetConfigurationFile        可选        目标的配置文件名。默认是components.xml
Translations                可选        用于翻译用户界面的语言代码列表。要添加多个语言变体,请指定多个<Translation>子元素,每个元素指定语言变体的名称。该项可选。有关详细信息,请参阅翻译页
UrlQueryString                可选        此字符串必须采用key = value形式,并且将附加到存档下载请求。这可以用于向托管存储库的web服务器传输信息
ControlScript                可选        自定义安装程序控制脚本的文件名。请参阅控制脚本
CreateLocalRepository        可选        如果要在安装目录中 创建本地存储库 ,请设置为true。此选项对在线安装程序没有影响。存储库将自动添加到默认存储库列表


Package目录中配置文件说明:
元素                        是否必需    描述
DisplayName                    必需        组件的可读名称
Description                    必需        组件的可读描述。将描述的翻译指定为附加说明标记的值,并将xml:lang属性设置为正确的语言环境。如果找不到与语言环境匹配的翻译文件,且存在未翻译的版本,则使用未翻译版本。否则,将不显示该描述
Version                        必需        组件的版本号格式为:`[0-9]+((.
ReleaseDate                    必需        此组件版本发布的日期
Name                        必需        此组件的域标识
Dependencies                可选        此组件依赖的组件的标识符列表(使用逗号分割)。您可以指定版本号,以破折号(-)分隔。您可以使用比较运算符(=, >, <, >= or <=)为版本号添加前缀。请记住,您必须使用字符引用&lt;来避开左尖括号(使用&lt;来插入<,使用&lt; =来插入<=)。更多相关信息,请参阅组件依赖关系
AutoDependOn                可选        此组件具有自动依赖性的组件的标识符列表(逗号分隔)。当且仅当 满足所有指定的依赖关系 时,才安装组件。如果组件对其他组件有自动依赖性,则组件树中组件旁的复选框将隐藏,并自动进行选择。如果组件以前未安装,则只有当选择此列表中的所有组件进行安装时,才会选择安装组件。如果组件已安装,则当选择此列表中的 至少一个组件 进行卸载时,将选择卸载组件。有关更多信息,请参阅组件依赖关系
Virtual                        可选        设置为true可从安装程序中隐藏组件。请注意,在根组件上设置此选项不起作用
SortingPriority                可选        组件在组件树中的优先级。 树从最高优先级到最低优先级排序,在顶部具有最高优先级
Licenses                    可选        安装用户接受的许可协议列表。要添加几个许可证,请添加几个<License>子元素,每个子元素指定许可证名称和文件。 如果有针对此组件列出的翻译,安装程序还将查找翻译的许可证。 它们需要具有与原始许可证文件相同的名称,但是具有添加的区域设置标识符。 例如,如果许可证文件被称为license.txt并且指定了德语翻译,且安装程序还包含一个license_de_de.txt文件(将在德语系统上安装时显示)
Script                        可选        被加载的脚本文件名。有关详细信息,请参阅添加操作
UserInterfaces                可选        要加载的页面列表。 要添加多个页面,请添加多个<UserInterface>子元素,每个子元素指定页面的文件名。有关详细信息,请参阅添加页面
Translations                可选        要加载的翻译文件的列表。要添加多个语言变体,请指定多个<Translation>子元素,每个子元素指定语言变体的文件名。有关详细信息,请参阅翻译页
UpdateText                    可选        如果这是一个更新组件,则将说明添加到组件描述中
Default                        可选        可以设置为true、false、脚本名。true:在安装程序中预先选中组件。此操作仅适用于没有可见子组件的组件。脚本名:在运行时解析执行脚本,计算出布尔值(boolean)。将脚本文件名称添加为此文件中<Script>元素的值。有关脚本示例,请参阅Selecting Default Contents
Essential                    可选        将包标记为必须去强制重启MaintenanceTool程序的。如果有 可用的必要组件更新 ,则程序包管理器保持禁用状态直到该组件更新。当运行updater时,新引入的必要组件将自动安装
ForcedInstallation            可选        确定必须安装的包。最终用户无法在安装程序中取消选择它
Replaces                    可选        要替换的组件列表(逗号分隔)
DownloadableArchives        可选        列出数据文件(逗号分隔),供在线安装程序下载。如果组件中有一些数据,并且package.xml和(或)脚本没有DownloadableArchives值,repogen工具将自动注册找到的数据
RequiresAdminRights            可选        如果程序包需要提升权限进行安装,请设置为true


Operation                    语法                                    用法
Copy                        "Copy" source target                    从source复制一个文件到target
Move                        "Move" source target                    从source移动一个文件到target
SimpleMoveFile                "SimpleMoveFile" source target            从source移动一个文件到target
Delete                        "Delete" filename                        删除filename.指定的文件
Mkdir                        "Mkdir" path                            创建path目录
Rmdir                        "Rmdir" path                            删除path目录
CopyDirectory                "CopyDirectory" sourcePath targetPath    复制sourcePath目录到targetPath
AppendFile                    "AppendFile" filename text                将text追加到filename指定的文件。text被视为ASCII文本
PrependFile                    "PrependFile" filename text                将text添加到filename指定的文件。text被视为ASCII文本
Replace                        "Replace" file search replace            打开文件去查找search字符串,并替换为replace字符串
LineReplace                    "LineReplace" file search replace        打开文件以查找以search字符串开头的行,并用replace字符串替换它。Lines are trimmed before the search.
Execute                        "Execute" [{exitcodes}] command [parameter1 [parameter... [parameter10]]]    执行命令指定的命令。 最多可以传递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上,将创建一个可带参数的 .lik 文件。在Unix上,将创建一个符号链接
CreateDesktopEntry            "CreateDesktopEntry" filename "key=value[ key2=value2[ key3=value3]]]"    创建一个.desktop初始化文件,如freedesktop.org指定的。如果filename是绝对路径,则桌面条目存储在那里。 否则,它存储在$XDG_DATA_DIRS/applications或$XDG_DATA_HOME/applications中指定的位置,包括由freedesktop.org定义的两者的默认路径。键值对将写入文件。该文件设置为使用UTF-8编码
InstallIcons                "InstallIcons" directory [Vendorprefix]    将目录的内容安装到由freedesktop.org指定的位置。也就是$XDG_DATA_DIRS/icons,/usr/share/icons或$HOME/.icons。 文件将从其初始位置删除。请确保在从归档中提取文件的操作之后添加此操作。如果您提供Vendorprefix,它会替换所有字符,直到遇到 带有此前缀 的图标文件名中的第一个破折号-
Extract                        "Extract" archive targetdirectory        提前archive内容到targetdirectory
GlobalConfig                "GlobalConfig" company application key value 
                            或"GlobalConfig" scope company application key value或"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,则该变量设置在系统范围内有效,而不是仅对当前用户
RegisterFileType            "RegisterFileType" extension command [description [contentType [icon]]]    注册要通过命令打开的扩展名的文件类型。 可选,你可以指定描述(description)、内容类型(contentType)和图标(icon)。当前仅支持Windows
ConsumeOutput                "ConsumeOutput" installerKeyName executablePath processArguments    保存运行带有参数processArguments的executablePath的可执行文件的输出到installerKeyName指定的安装程序键。 可以传递其他参数
CreateLink                    "CreateLink" linkPath targetPath    创建从linkPath指定的位置到由targetPath指定的位置的链接
CreateLocalRepository        "CreateLocalRepository" binaryPath repoPath    创建一个本地存储库在repoPath指定的目录。对于离线安装程序,将二进制数据存储在binaryPath指定的目录
FakeStopProcessForUpdate    "FakeStopProcessForUpdate" processlist    在卸载期间匹配运行进程与processlist中的条目(逗号分隔)。 如果找到匹配,则显示一个消息框,要求用户在继续之前停止这些进程
License                        "License" licenses                        将licenses指定的许可证文件复制到目标目录中名为Licenses的子文件夹。对于在包描述文件中声明的包,将自动添加此操作
MinimumProgress                "MinimumProgress"                        将进度值增加1
SelfRestart                    "SelfRestart" core                        重新启动由core指定的updater或软件包管理器
Settings                    "Settings" path method key aValue        根据method的值:set、remove、add_array_value和remove_array_value,来设置或删除位于path的settings文件或注册表中key的值aValue

一此常用方法:
function Controller() {
    // 判断是否是卸载程序
    if(installer.isUninstaller()){
        installer.uninstallationStarted.connect(this, this.uninstallationStarted);
    }
    // 判断是否是安装程序
    if(installer.isInstaller()){
        installer.installationStarted.connect(this,this.installationStarted);
    }
}

// 卸载开始前需要执行的操作
Controller.prototype.uninstallationStarted = function() {
    installer.execute("touch","/home/centos/test_TTTTT");
    installer.execute("mkdir","/home/centos/TestWorkstation");
    installer.execute("mkdir","${HOME}/TestWorkstation/Databases");
    installer.execute("cp",["/home/centos/TestWorkstation/app.png","/home/centos/TestWorkstation/test"]);
}

// 开始安装前执行的操作
Controller.prototype.installationStarted = function() {
    installer.execute("touch","/home/centos/test_Start");
}

范例

要安装一个test 软件,,他依赖安装数据库

config 目录下分两个文件config.xml 、 controller.qs

<?xml version="1.0" encoding="UTF-8"?>
<Installer>
    <Name>Test</Name>
    <Version>1.0.3.0</Version>
    <Title>Test</Title>
    <Publisher>xxxxx</Publisher>
    <InstallerApplicationIcon>app</InstallerApplicationIcon>
    <StartMenuDir>Test</StartMenuDir>
    <MaintenanceToolName>UnTest</MaintenanceToolName>
    <TargetDir>D:\Test\</TargetDir>
    <RemoveTargetDir>false</RemoveTargetDir>
    <CreateLocalRepository>true</CreateLocalRepository>
    <InstallActionColumnVisible>true</InstallActionColumnVisible>
    <ControlScript>controller.qs</ControlScript>
</Installer>

function Controller()
{
    // 判断是否是卸载程序
    if(installer.isUninstaller()){
        installer.uninstallationStarted.connect(this, this.uninstallationStarted);
    }
}

// 卸载开始前需要执行的操作
Controller.prototype.uninstallationStarted = function() {
    installer.execute("@TargetDir@/uninstall-db.bat");
}
 

packages 目录下两个目录 Test 和TestDB ,分别安装软件和数据库

其中Test目录下的meta下配置 package.xml、test.qs 分别如下

<?xml version="1.0"?>
<Package>
    <DisplayName>Test</DisplayName>
    <Description>Test版本1.0.3.0主要功能程序.</Description>
    <Version>1.0.3.0</Version>
    <ReleaseDate>2022-12-26</ReleaseDate>
    <Default>true</Default>
    <Script>test.qs</Script>
    <SortingPriority>100</SortingPriority>
</Package>


function Component()
{
    // default constructor
}

Component.prototype.createOperations = function()
{
    // call default implementation to actually install README.txt!
    component.createOperations();

    if (systemInfo.productType === "windows") {
        component.addOperation("CreateShortcut", "@TargetDir@/Test/Test.exe", "@HomeDir@/Desktop/Test.lnk");
        component.addOperation("CreateShortcut", "@TargetDir@/Test/Test.exe", "@StartMenuDir@/Test.lnk");
        component.addOperation("CreateShortcut", "@TargetDir@/UnTest.exe", "@StartMenuDir@/UnTest.lnk");
    }
}

TestDB目录下配置如下

<?xml version="1.0"?>
<Package>
    <DisplayName>数据库</DisplayName>
    <Description>Test程序支持的数据库.</Description>
    <Version>5.7.29</Version>
    <ReleaseDate>2014-08-25</ReleaseDate>
    <Default>false</Default>
    <Script>dbTest.qs</Script>
    <SortingPriority>90</SortingPriority>
</Package>

function Component() {
    installer.finishButtonClicked.connect(this, Component.prototype.installationFinished);
}

Component.prototype.createOperations = function()
{
    component.createOperations();
}

Component.prototype.installationFinished = function()
{
    if(component.isInstalled())
    {
        try 
        {
            if (installer.isInstaller() && installer.status == QInstaller.Success) 
            {
               installer.execute("@TargetDir@/install-db.bat");
            }
        } 
        catch(e) 
        {
            console.log(e);
        }
    }
}
 


 文章来源地址https://www.toymoban.com/news/detail-436114.html

到了这里,关于Qt Installer Framework使用教程:的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • DVWA下载安装教程步骤

    1.下载DVWA  并将文件解压到phpstudy安装目录里面的www目录下  2.打开下载完成的DVWA文件并更改文件中的 config.inc.php (将dist删掉)里的代码  3.浏览器只需要直接打开“http://127.0.0.1/dvwa/setup.php”即可! 4. 如果有”标红“提示,可能你要打开一些模块或做一些设置,否则有些是

    2024年02月04日
    浏览(36)
  • Microsoft visio2010下载安装步骤图文教程

    目录 概要 配置安装 总结 应小伙伴们的要求,特畅谈Visio 2010iTunes地址,及Anantnag的装设教程如下★Microsoft Office Visio★     Office Visio  是office软件全系列中的负责绘制流程图和示意图的软件,是几款适于IT和商务人员就非常复杂信息、系统和流程进行IntelliTone化处理过程、分

    2024年02月07日
    浏览(59)
  • QT下载安装教程

    Qt 是一个跨平台的应用程序开发框架,最初由挪威的 Trolltech 公司开发,并于2008年被诺基亚收购。它提供了一套丰富的工具和库,用于构建图形界面和跨平台的应用程序。 Qt 的特点包括: 跨平台性:Qt 支持多种操作系统,包括 Windows、macOS、Linux、Android 等,使开发者可以使用

    2024年01月16日
    浏览(37)
  • Qt下载安装及配置教程

    进入qt中文网站:https://www.qt.io/zh-cn/ 下载开源版 往下滑,下载Qt在线安装程序 它已经检测出我的是windows系统,直接点击download就好。如果是其它的系统,需要找到对应自己系统的安装包。 然后跟网速有关,等一会就会自动下载 等待下载完成,双击.exe文件,就可以进行安装。

    2024年02月03日
    浏览(39)
  • Microsoft Visual Studio Installer Projects下载安装太慢

    方法1:直接到官网下载 方法2:直接下载点击这里

    2024年02月15日
    浏览(58)
  • Vue下载安装步骤的详细教程(亲测有效) 1

    目录 一、【准备工作】nodejs下载安装(npm环境) 1 下载安装nodejs 2 查看环境变量是否添加成功 3、验证是否安装成功 4、修改模块下载位置 (1)查看npm默认存放位置 (2)在 nodejs 安装目录下,创建 “node_global” 和 “node_cache” 两个文件夹, (3)修改默认文件夹, (4)测试默

    2023年04月11日
    浏览(44)
  • YOLOv5论文作图教程(1)— 软件介绍及下载安装(包括软件包+下载安装详细步骤)

    前言: Hello大家好,我是小哥谈。 在学习YOLOv5算法的过程中,很多同学都有发表论文的需求。作为文章内容的支撑,图表是最直接的整合数据的工具,能够更清晰地反映出研究对象的结果、流程或趋势。在发表论文的时候,审稿人除了关注论文的内容和排版外,也会审核图表

    2024年02月08日
    浏览(64)
  • Vue下载安装步骤的详细教程(亲测有效) 2 安装与创建默认项目

    上篇请移步到Vue下载安装步骤的详细教程(亲测有效) 1_水w的博客-CSDN博客 上一篇博文已经对Node.js的安装与配置进行了详细介绍。 另外:文中项目存放的路径及项目名称可根据自身实际情况进行更改。 目录 三、Vue安装配置 1、搭建Vue脚手架 2、通过NPM安装Vue (1)安装Vue脚手架

    2024年02月02日
    浏览(52)
  • 【保姆级图文教程】QT下载、安装、入门、配置VS Qt环境

    QT 是一个跨平台的应用程序开发框架,它提供了丰富的工具和类库,用于开发图形用户界面(GUI)程序。Qt 提供了 C++ 编程语言接口,同时也支持其他编程语言,如 Python和QML。 以下是 QT 的一些主要特点: 跨平台:Qt 支持在多个操作系统上进行开发,包括 Windows、macOS、Linux、

    2024年01月17日
    浏览(62)
  • VS2022配置QT6.4.3的详细步骤(2023年最新版安装教程)

         本文包含了 QT在线安装器的安装过程,QT的安装过程,QT的环境配置,VS的环境配置 QT在线安装器的百度云资源 希望可以帮助大家解决安装过程中出现的各种问题。         前些天,听完了C++的基础课程想下载个QT学一下前端操作,但是在安装的时候却出现了一些问题,

    2023年04月26日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包