Qt Installer框架组件安装位置

时间:2013-09-27 12:12:30

标签: qt qt-installer

我已经基于具有多个组件的Qt安装程序框架创建了一个安装程序包。 我需要在适当的目录中安装每个组件。

是否可以为单个组件指定目标目录?我指的是这样的事情:

var appData = installer.environmentVariable("AppData");
     if (appData != "")
         component.setValue("TargetDir", appData+ "/MyComponent");

提前谢谢。

2 个答案:

答案 0 :(得分:9)

这个问题已经得到解答,但我想我会添加一个更详细的答案。

documentation表示“对于每个组件,您可以指定一个脚本来准备安装程序要执行的操作。”

Qt安装程序框架QtIFW附带了一组示例,其中一个示例称为 modifyextract 。使用此功能,我修改了 package.xml 文件以包含行

<Script>installscript.qs</Script>

然后我将文件 installscript.qs 添加到我的包元目录中,其中包含以下内容

function Component()
{
}

Component.prototype.createOperationsForArchive = function(archive)
{
    // don't use the default operation
    // component.createOperationsForArchive(archive);

    // add an extract operation with a modified path
    component.addOperation("Extract", archive, "@TargetDir@/SubDirectoryName");
}

然后将包数据文件夹中的文件安装在子文件夹SubDirectoryName

答案 1 :(得分:1)

您需要基于文档:

Extract "Extract" archive target directory Extracts archive to target directory.