在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>
答案 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\MyPath
或C:\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