Fondamentalement ce dont j'ai besoin est un moyen automatisé de mettre à jour le numéro de version du produit dans WiX (3.0 avec Votive etc), et ensuite obtenir ce numéro de version dans un Inno Setup " J'ai presque le processus principalement automatisé, mais les numéros de version doivent encore être mis à jour manuellement ce qui n'est évidemment pas idéal, mais je n'ai pas réussi à trouver comment transmettre des valeurs à Inno Setup au moment de la compilation (et comment les référencer), et dans le projet WiX j'ai besoin de savoir comment référencer le numéro de version d'un projet différent dans la même solution dans Visual Studio 2008numéro de version automatisé-build avec WiX, Inno Setup, et VS2008
Répondre
Pas besoin de passer quoi que ce soit! Vous pouvez simplement laisser le préprocesseur InnoSetup lire directement les informations de version à partir de la ressource de version binaire, par ex.:
#define AppName "My App"
#define SrcApp "MyApp.exe"
#define FileVerStr GetFileVersion(SrcApp)
#define StripBuild(str VerStr) Copy(VerStr, 1, RPos(".", VerStr)-1)
#define AppVerStr StripBuild(FileVerStr)
[Setup]
AppName={#AppName}
AppVersion={#AppVerStr}
AppVerName={#AppName} {#AppVerStr}
UninstallDisplayName={#AppName} {#AppVerStr}
VersionInfoVersion={#FileVerStr}
VersionInfoTextVersion={#AppVerStr}
OutputBaseFilename=MyApp-{#FileVerStr}-setup
Avant la version 5.4.1 (2011-02-09) ISPP n'était pas inclus dans le package InnoSetup par défaut. Vous deviez télécharger le pack de démarrage rapide InnoSetup: http://www.jrsoftware.org/isdl.php#qsp (merci @Gwyn, pour la mise à jour)
La façon dont je le fais est avec un script WSF (j'utilise JavaScript mais vous pouvez utiliser VBScript ou même un script SH en utilisant Cygwin) qui crée un fichier d'en-tête contenant des définitions pour les numéros de version. Vous pouvez utiliser l'instruction Wix <include>
pour faire glisser le numéro de version.
Pour Inno Setup, je crée un fichier .iss contenant le numéro de version, # compris dans le script iss principal. Je suis chez moi mais je peux poster un code d'échantillon demain si vous voulez.
EDIT: J'ai oublié de mentionner que j'exécute le script qui génère les fichiers contenant le numéro de build au cours de la phase de pré-construction de mes différents projets VS.
J'apprécierais le code d'exemple si cela ne vous dérange pas :) Merci – Davy8
Je trouve cela pour la section de configuration Inno qui ressemble à ça marcherait:
Ouais, mais pourquoi passer par tous ces problèmes quand vous pouvez simplement demander au compilateur Inno d'obtenir les numéros de la source d'informations de version binaire source (voir ma réponse)? Évitez le double-ménage (comme mettre manuellement la version dans la ressource et dans un fichier texte) dans la mesure du possible. –
Quelques exemples de code comme promis. Cela devrait être suffisant pour vous aider à démarrer.
Le code JavaScript suivant peut être utilisé pour créer un fichier InnoSetup iss contenant le numéro de version. Le fichier réel ressemblera à ceci:
VersionInfoVersion=1.2.3.12345
AppVerName=My App v1.2.3.12345
Le script principal Inno Setup comprendra ce fichier en ajoutant ce qui suit à la fin de la [Configuration] section:
[Setup]
AppId={{...}}
...
#include "version.iss"
Voici la JavaScript (ce serait enregistré en tant que fichier séparé - version.js par exemple):
createInnoSetupIncludeFile("My App", 1, 2, 3, 12345, "version.iss");
function createInnoSetupIncludeFile(appName, verMajor, verMinor, verSubMinor, buildNumber, headerFileName)
{
var versionString = verMajor + "." + verMinor + "." + verSubMinor + "." + buildNumber;
var fileSystemObject = WScript.CreateObject("Scripting.FileSystemObject");
var fileObject = fileSystemObject.CreateTextFile(headerFileName, true);
fileObject.WriteLine("VersionInfoVersion=" + versionString);
fileObject.WriteLine("AppVerName=" + appName + " v" + versionString);
fileObject.Close();
fileObject = null;
fileSystemObject = null;
}
Vous pouvez modifier ce script pour créer le fichier version.iss i n un dossier différent.
Enfin, vous devez exécuter le JavaScript - le meilleur endroit serait dans l'événement de pré-construction de votre projet Visual Studio. Ajoutez ce qui suit:
cscript version.js //NoLogo
Vous devez modifier cela pour créer également un fichier d'inclusion compatible Wix. J'avais l'habitude de faire cela, mais j'ai abandonné Wix en faveur d'Inno Setup, donc je n'ai pas ce code à portée de main. Il existe cependant un mécanisme pour un script Wix, ce qui devrait vous orienter dans la bonne direction - le concept est le même - générer un fichier texte qui définit le numéro de version et l'inclure ensuite.
Espérons que cela aide.
Merci, je ne sais pas si j'irai avec le vôtre ou celui d'Oliver mais +1 pour vous deux :) – Davy8
Vous pouvez obtenir la version du produit pour WiX à partir d'une version de fichier dans votre paquet. La syntaxe est quelque chose comme:
<Product Version="$(var.FileVersion.FileId)">
Ou vous pouvez fournir sur la ligne de commande à l'aide de la bougie « -dVersionFromCommandLine = 1.0.0.0 » switch avec la syntaxe comme:
<Product Version="$(var.VersionFromCommandLine)">
Ou fonctionne dans le dernier builds de WiX v3. Seul ce dernier fonctionne sur WiX v2.
Rob a répondu à cela dans http://stackoverflow.com/questions/626033/how-can-i-set-the-wix-installer-version-to-the-curent-build-version plus correctement je pense. Vous devez utiliser! (Bind.FileVersion.MyFileId) – vasquez
- 1. Inno setup: cacher les fichiers
- 2. conditionnellement installer les pilotes 64 bits avec Inno Setup
- 3. Codes de retour msi dans Inno Setup
- 4. Pointeurs de fonction dans Inno Setup
- 5. Inno Setup: Désinstaller le serveur Dll
- 6. Comment annuler le programme d'installation avec Inno Setup?
- 7. Gestion automatique du numéro de version de l'assemblage dans VS2008
- 8. Ajout d'assemblages au GAC depuis Inno Setup
- 9. Ajout d'une application à OpenWithList avec Inno Setup
- 10. Comment convertir une valeur de version de chaîne en valeur numérique dans Inno Setup Scripts?
- 11. Application.UserAppDataRegistry et numéro de version
- 12. pygtk + py2exe + Inno Setup -> icône de raccourci
- 13. iis wildcard redirect - numéro de wix
- 14. Exécution d'un autre programme d'installation dans une installation Inno Setup
- 15. Comment créer un fichier texte dans Inno Setup?
- 16. Comment générer un nouveau GUID dans Inno Setup?
- 17. Flash AS3 avec numéro de version HG?
- 18. app_themes fichiers css et numéro de version
- 19. version setup Obtenir dans le projet de site Web asp.net
- 20. Comment passez-vous les paramètres au compilateur de ligne de commande Inno Setup?
- 21. WiX - toujours remplacer la version précédente
- 22. Vérification de la validité du numéro de version avec Perl
- 23. Impossible d'enregistrer la DLL/OCX: RegSvr32 a échoué avec le code de sortie 0xC0000005 avec Inno Setup 5.2.3
- 24. Inno Setup: Événements de contrôle de capture dans la page de l'assistant
- 25. Quelle version de Crystal Reports est distribuée avec VS2008?
- 26. Numéro de version du fichier dans la source avec Vault
- 27. Définir la version ASP.Net en utilisant WiX
- 28. Numéro de version d'une dll dans .NET
- 29. Version de Visual Studio Setup exe différente de la version de propriétés
- 30. WIX et commonAppDataFolder
Wow! C'est brillant! +1 Agacé que ISPP ne fait pas partie du package par défaut. – Rob
+1 Vous pouvez extraire toutes les valeurs versioninfo de votre exe. J'ai utilisé Inno (et ISTool) depuis plusieurs années maintenant pour tous mes produits, et je pense que c'est plutôt ... beau. – Spike0xff
À partir de 5.4.1 (2011-02-09), il est ... –