Qt安装程序框架 - 阅读下载的软件包版本

时间:2015-04-09 08:57:45

标签: c++ qt qt-installer

使用QtIFW-1.5.0,到目前为止,我能够在Windows上为我的Qt应用程序生成在线安装程序。安装程序从我的Web服务器下载相应的包,并执行控制脚本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);
    }
}

好的,但我需要写入注册表的另一个密钥是包VERSION NUMBER,在标签中的安装程序配置文件config.xml中定义

<Version></Version>

如何从installscript.qs获取此值?我读过 - 我说了更多:研究 - 文档component QML Typeinstaller QML Type我没有找到任何版本的引用,除了:

安装程序QML类型:

boolean versionMatches(string version, string requirement)

对我来说没用,因为你必须知道版本,这正是我找到的。

所以任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

你可以打电话

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

获取config.xml文件中指定的版本。