Установка "Program Files" в качестве установочного каталога по умолчанию в Qt Installer Framework

В Qt Installer Framework все демки имеют TargetDir спецификация, которая (для Windows) размещает приложение, например, в C:\InstallationDirectory, Как я могу иметь его по умолчанию для программных файлов?

<?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 ответа

Решение

Для этого нет никакой опции, но вы можете создать интерфейс сценариев компонентов, чтобы установить каталог установки, как описано здесь.

Во-первых, в вашем 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>

Из Qt Installer Framework >= 3.0

Теперь вы можете использовать ApplicationsDir переменная, и по умолчанию C:\Program Files в Windows, /opt в Linux и /Applications на OS X.

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

Ссылка: http://doc.qt.io/qtinstallerframework/scripting.html

Другие вопросы по тегам