1

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);
    }
}

わかりました。レジストリに書き込む必要があるもう 1 つのキーは、インストーラー構成ファイル config.xml のタグで定義されているパッケージ VERSION NUMBER です。

<Version></Version>

installscript.qs からこの値を取得するにはどうすればよいですか? 私は読んだ - もっと言った: 勉強した - docs component QML Typeインストーラー QML Typeそして、バージョンへの参照を見つけられなかった:

インストーラー QML タイプ:

boolean versionMatches(string version, string requirement)

バージョンを知る必要があるため、これは私にとって役に立ちません。これはまさに私が見つけたものです。

そのため、どんな助けもいただければ幸いです。

4

1 に答える 1

1

あなたは呼び出すことができます

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

ファイルで指定されたバージョンを取得しconfig.xmlます。

于 2015-04-09T10:27:20.207 に答える