Qt Installer Framework - Чтение загруженной версии пакета

Используя QtIFW-1.5.0, я пока могу создать онлайн-установщик для моего приложения Qt в Windows. Установщик загружает соответствующий пакет с моего веб-сервера и выполняет некоторые операции, определенные в управляющем сценарии installscript.qs, например. запись некоторых ключей в реестр и создание ярлыка на рабочем столе со значком:

installscript.qs:

Component.prototype.createOperations = function()
{
    try
    {  
        // call the base create operations function
        component.createOperations();

        // Add some keys to registry;    
        var userProfile = installer.environmentVariable("USERPROFILE");
        installer.setValue("UserProfile", userProfile);
        var reg = installer.environmentVariable("SystemRoot") + "\\System32\\reg.exe";
        var key= "HKCU\\Software\\Company\\Product";
        component.addOperation("Execute", reg, "ADD", key, "/f");
        component.addOperation("Execute", reg, "ADD", key, "/v", "productId", "/t", "REG_BINARY");

        // Add a desktop shortcut with icon:
        component.addOperation("CreateShortcut",
                               "@TargetDir@\\MyExecutable.exe", 
                               "@UserProfile@\\Desktop\\MyExecutable.lnk",
                               "workingDirectory=@TargetDir@", 
                               "iconPath=@TargetDir@\\MyIcon.ico");
    }
    catch (e)
    { 
        print(e);
    }
}

Хорошо, но еще один ключ, который мне нужно записать в реестр, — это НОМЕР ВЕРСИИ пакета, определенный в файле конфигурации установщика config.xml в теге

<Version></Version>

Как я могу получить это значение из installscript.qs? Я прочитал -- я бы сказал больше: изучил -- документацию по компоненту QML Введите и тип QML установщика, и я не нашел любую ссылку на версию, кроме:

тип QML установщика:

boolean versionMatches(string version, string requirement)

что для меня бесполезно, потому что вы должны знать версию, которую я нахожу именно так.

Поэтому любая помощь будет оценена по достоинству.


person Laura    schedule 09.04.2015    source источник


Ответы (1)


Вы можете позвонить

var version = installer.value("ProductVersion");

чтобы получить версию, указанную в файле config.xml.

person Dávid Kaya    schedule 09.04.2015
comment
Спасибо, это работает. Есть ли у вас краткое руководство по переменным, доступным из сценария установки? - person Laura; 09.04.2015
comment
@Laura doc.qt.io/qtinstallerframework/ - person Dávid Kaya; 09.04.2015
comment
Я читал эту документацию десятки раз, но не видел ее! Благодарю вас. - person Laura; 10.04.2015
comment
Ну, это работает, но не так, как ожидалось. Мне нужна ПАКЕТНАЯ версия загружаемого пакета, которая меняется с каждым обновлением. ProductVersion не меняется с обновлениями, поскольку зависит от инструмента обслуживания, созданного установщиком. - person Laura; 17.04.2015