将"Program Files"设置为Qt Installer Framework中的默认安装目录

ada*_*ker 2 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>
Run Code Online (Sandbox Code Playgroud)

ada*_*ker 7

有这个没办法,但您可以创建使用组件脚本界面来设置安装目录,如所描述这里.

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

<?xml version="1.0" encoding="UTF-8"?>
<Package>
    ...
    <Script>installscript.qs</Script>
</Package>
Run Code Online (Sandbox Code Playgroud)

installscript.qs文件package.xml应与以下目录位于同一目录中:

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

现在安装程序框架将建议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>
Run Code Online (Sandbox Code Playgroud)


car*_*ard 6

从 Qt 安装程序框架 >= 3.0

您现在可以使用该ApplicationsDir变量,它会C:\Program Files在 Windows、/optLinux 和/ApplicationsOS X上默认使用。

<?xml version="1.0" encoding="UTF-8"?>
<Installer>
    ...
    <TargetDir>@ApplicationsDir@/InstallationDirectory</TargetDir>
</Installer>
Run Code Online (Sandbox Code Playgroud)

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