3 votes

Installshield: est-il possible d'utiliser la propriété ProductVersion dans la table de mise à niveau MSI?

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".

7voto

Michael Urman Points 7526

Un nouveau projet devrait contenir deux enregistrements destinés à se comporter comme vous le décrivez. Cependant, au lieu de stocker une version de produit réelle, ils devraient avoir un jeton marqueur, quelque chose comme ***ALL_VERSIONS*** (désolé, je ne suis pas près de ma copie d'InstallShield en ce moment). Le nom de ce jeton n'est pas génial, car ce qui se passe vraiment, c'est que la ProductVersion actuelle est substituée à sa construction.

Si vous avez déjà changé le jeton pour une version réelle, vous pouvez le modifier en sélectionnant une vue "conviviale" en choisissant un bouton radio faisant référence à "ma version" au lieu de la version réelle. Ou vous pouvez créer un nouveau projet pour le voir et le copier. Le jeton fonctionne dans le champ minimum ou maximum de toutes les versions récentes (mais seulement dans le champ maximum de certaines anciennes versions) d'InstallShield.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X