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)
バージョンを知る必要があるため、これは私にとって役に立ちません。これはまさに私が見つけたものです。
そのため、どんな助けもいただければ幸いです。