2013-09-27 105 views
2

我已經創建了一個基於Qt安裝程序框架和多個組件的安裝程序包。 我需要將每個組件安裝在相應的目錄中。Qt安裝程序框架組件安裝位置

是否可以指定單個組件的目標目錄?我指的是這樣的:

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

在此先感謝您。

+0

我解決了我的問題,通過添加「提取」操作 – Rustem

回答

0

你需要這個基於文檔:

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

7

這個問題已經回答了,但我想我會添加更詳細的解答。

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, "@[email protected]/SubDirectoryName"); 
} 

的包數據文件夾中的文件然後安裝在子文件夾SubDirectoryName