Nous utilisons Qt Installer Framework pour créer nos programmes d'installation de produits. La plupart des choses fonctionnent assez bien, mais il y a encore des problèmes non résolus.Placeholder de version dans le script d'installation
Chaque fois que nous créons une nouvelle version du produit, ce qui arrive assez fréquemment, nous devons mettre à jour le contenu de la balise <Version>
à l'intérieur du package.xml
. Mais nous devons également changer le nom du lien créé par l'installateur dans le installscript.qs
, de sorte que le client puisse distinguer entre deux versions installées en parallèle du programme.
E.g. ici un lien comme MyApplication-2.1
devrait apparaître dans le menu de démarrage après l'installation.
Component.prototype.createOperations = function()
{
try {
// call the base create operations function
component.createOperations();
component.addOperation("CreateShortcut", "@[email protected]/bin/MyApplication-2.1-vc14.exe", "@[email protected]/MyApplication-2.1.lnk");
} catch (e) {
print(e);
}
}
Malheureusement, on ne peut pas écrire @[email protected]
ou @[email protected]
, au lieu de 2.1
, se référant au contenu de la balise <Version>
du package.xml
. Au lieu de @[email protected]
et aussi @[email protected]
font apparemment référence au contenu de la balise <Version>
à l'intérieur du config.xml
, ce qui n'est pas le comportement souhaité.
Mon problème est maintenant, que j'ai besoin de synchroniser chaque fois les numéros de versions, ce qui semble être très sujet aux erreurs. Y a-t-il des solutions de contournement?
Vous pouvez écrire un script pour extraire 'Version' de' packages.xml', puis créer une variable pour la version de l'application qui l'ajoute et l'utiliser pour 'TargetDir' et' StartMenuDir' dans 'CreateShortcut'. – Azeem