设置"程序文件"作为Qt Installer Framework中的默认安装目录

时间:2014-12-17 08:54:40

标签: c++ qt qt-installer

在Qt安装程序框架中,所有演示都有TargetDir规范(对于Windows)将应用程序放在例如C:\InstallationDirectory中。如何将其默认为Program Files?

<?xml version="1.0" encoding="UTF-8"?>
<Installer>
    <Name>Your application</Name>
    <Version>1.2.3</Version>
    <Title>Your application Installer</Title>
    <Publisher>Your vendor</Publisher>
    <StartMenuDir>Super App</StartMenuDir>
    <TargetDir>@RootDir@InstallationDirectory</TargetDir>
</Installer>

2 个答案:

答案 0 :(得分:7)

没有此选项,但您可以创建使用Component Scripting接口来设置安装目录,如here所述。

首先,在您的packages/com.myorg.myapp/meta/package.xml文件中,包含对脚本文件的此引用。

<?xml version="1.0" encoding="UTF-8"?>
<Package>
    ...
    <Script>installscript.qs</Script>
</Package>

installscript.qs文件应与package.xml位于同一目录中,应如下所示:

function Component()
{
     var programFiles = installer.environmentVariable("ProgramFiles");
     if (programFiles != "")
         installer.setValue("TargetDir", programFiles + "/MyPath");
}

现在,安装程序框架会根据需要建议C:\Program Files\MyPathC:\Program Files (x86)\MyPath

最后,如果您想允许包含空格的安装路径(例如C:\Program Files\MyPath),则需要在config/config.xml中专门通过添加以下行来启用此功能:

<?xml version="1.0" encoding="UTF-8"?>
<Installer>
     ...
     <AllowSpaceInPath>true</AllowSpaceInPath>
</Installer>

答案 1 :(得分:2)

来自Qt Installer Framework&gt; = 3.0

您现在可以使用ApplicationsDir变量,它在Windows上默认为C:\Program Files,在Linux上默认为/opt,在OS X上默认为/Applications

<?xml version="1.0" encoding="UTF-8"?>
<Installer>
    ...
    <TargetDir>@ApplicationsDir@/InstallationDirectory</TargetDir>
</Installer>

参考:http://doc.qt.io/qtinstallerframework/scripting.html#applications-directory-on-windows