Une table de mise à niveau typique pour l'installation MSI d'InstallShield contient deux enregistrements : "de n'importe quelle version à la version actuelle est une mise à niveau" et "de la version actuelle à n'importe quelle version est une régression". Cela nécessite de copier-coller manuellement le numéro de la "version actuelle" à chaque fois qu'un numéro de version majeur, mineur ou de build a changé, ce qui n'est pas très pratique.
Actuellement, j'utilise un script qui analyse le fichier de projet .ism et remplace le numéro de version dans la table de mise à niveau avant la compilation. Mais c'est un bidouillage peu propre. Peut-être est-il possible d'utiliser la propriété MSI "ProductVersion" dans la table de mise à niveau, de sorte que la version du produit soit stockée uniquement dans cette propriété ? J'ai essayé d'entrer le nom de cette propriété de plusieurs manières, comme [ProductVersion]
ou ##ProductVersion##
, mais rien n'a fonctionné - il n'est pas remplacé par la valeur de la propriété, et le MSI résultant contient le texte "##ProductVersion##" au lieu de la valeur de la propriété "1.30.1264".