75 votes

Comment puis-je définir automatiquement la version de mon installateur Inno Setup en fonction de la version de mon application ?

J'utilise Inno Setup pour générer le programme d'installation de mon application. Comment puis-je définir le numéro de version du fichier setup.exe ( VersionInfoVersion ) généré par Inno pour correspondre automatiquement au numéro de version de mon application ? Maintenant, chaque fois que je déploie une nouvelle version de mon application, je dois mettre à jour le numéro de version manuellement.

Maintenant, je fais ça :

[Setup]
VersionInfoVersion=1.2.2.0 //writing the value manually

Je veux quelque chose comme ça :

[Setup]
VersionInfoVersion={Get the version of my app}

2voto

RexBarker Points 666

Dans mon cas, je voudrais définir la chaîne de version à partir d'un fichier. Je n'ai pas d'EXE, puisque mon installateur emballe un programme Python intégré. Je définis donc le numéro de version dans un fichier texte d'une ligne comme celui-ci (il est créé à partir d'un fichier de type git tag au préalable) :

.. \Build\app_version.txt :
v1.2.1

Dans la configuration Inno, j'ai utilisé une instruction define du préprocesseur pour définir la version dans tout le texte.

#define VerFileNum FileOpen("..\Build\app_version.txt")
#define MyAppVersion Trim(StringChange(FileRead(VerFileNum),"v",""))

Ici, j'ai utilisé Trim() y StringChange() pour supprimer le "v" de tête et les espaces de queue de la chaîne. Plus loin dans la section de configuration, la fonction AppVersion peut être définie à l'aide de la définition du préprocesseur :

[Setup]
AppVersion={#MyAppVersion}

Le préprocesseur d'Inno Setup dispose d'un ensemble assez complet de fonctions déjà définies : Fonctions du préprocesseur Inno setup

1voto

cdsaenz Points 46

Après avoir essayé d'autres méthodes, j'ai fini par utiliser un chemin relatif (le fichier .iss se trouve dans un dossier et le fichier EXE deux niveaux au-dessus).

; Extract File Version from EXE
#define MyAppVersion GetFileVersion("..\..\Release\CSClave.exe")

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