2 votes

Génération de GUID pour les fichiers MSI Wix dans Azure DevOps

Je suis en train de configurer un installateur Wix pour une application de serveur web et une application frontale Sitecore. Ma question n'est pas liée spécifiquement au serveur web ou à Sitecore. Mes problèmes concernent Wix et comment l'utiliser avec la livraison continue.

1) Wix nécessite des GUID pour chaque fichier et le produit lui-même. Dois-je mettre à jour chaque GUID dans le fichier Wix à chaque build ? Dans un dépôt Git, cela peut potentiellement entraîner de nombreux changements.

2) Si je dois mettre à jour les GUID lorsque chaque branche (dev, staging et master) sur mon serveur de livraison continue (Azure DevOps) crée une build, comment mettre à jour le fichier Wix avec de nouveaux GUID dans Azure DevOps ?

Ce que nous voulons vraiment, c'est être en mesure de construire, publier, déployer et éventuellement revenir en arrière à la dernière version fonctionnelle sur chacun de nos 3 serveurs (dev, staging et master). À l'origine, je pensais simplement copier les fichiers lors de l'étape de déploiement, mais on m'a plutôt demandé de construire un installateur MSI car c'est plus propre et permet de revenir en arrière plus facilement en cas d'installations ratées. Si vous pensez que Wix n'est pas l'outil approprié ou s'il existe un meilleur processus, veuillez également le mentionner. Wix semble vraiment excessivement verbeux : un composant pour pratiquement chaque fichier avec des GUID générés pour chacun.

0voto

Glytzhkof Points 5037

Code du produit, de l'emballage et de la mise à niveau: Vous pouvez utiliser les GUID automatiques de WiX pour les composants (pour la plupart des composants). L'utilisation des GUID automatiques réduit considérablement la complexité de la source WiX. Est-ce sûr?

Le Code du produit et le Code de mise à niveau doivent être gérés. Pour la plupart des cas, vous devriez changer le Code du Produit et le Code de l'Emballage pour chaque version. Le Code de l'emballage peut être défini pour se générer automatiquement lors de la construction. En fait, le code du produit peut également l'être, si vous utilisez seulement des mises à niveau majeures. Résumé intéressant de Flexera sur le code produit, l'emballage et la mise à niveau.


Bonjour WiX: Il y a un exemple WiX Hello World Visuel Studio ici. Cela devrait vous montrer les bases de la compilation d'une configuration fonctionnelle avec WiX et Visual Studio. Il y a aussi une série de conseils de démarrage rapide pour WiX ici (de nombreux liens vers des exemples).


Auto-Magic: Vous pouvez utiliser la fonction auto-GUID de WiX décrite ici : Syntaxe pour les GUID dans WiX?. Vous laissez simplement de côté le GUID codé en dur pour les composants que WiX est capable de gérer de manière automatique.

Comprendre les GUID des composants: Cette description pragmatique de comment les GUID des composants sont censés fonctionner peut aider à mieux les comprendre : Changer le GUID de mon composant dans WiX?

Voici d'autres sources d'information :

Rob Mensching, créateur de WiX:

Flexera:


Azure DevOps: Je ne travaille pas dans cet environnement, mais si vous utilisez des GUID de composants automatiques, alors vous avez généralement seulement besoin de mettre à jour le Code du Produit et la Version du Produit pour chaque build - j'oublie probablement quelque chose. Vous pouvez définir le Code de l'Emballage pour se générer automatiquement lors de la construction, car il doit simplement être unique pour chaque fichier (nouveau fichier créé pour chaque build, donc juste générer automatiquement). Beaucoup définissent également le code du produit pour se générer automatiquement car ils utilisent uniquement des mises à niveau majeures.

Je n'ai jamais eu besoin en réalité, mais vous devriez pouvoir transmettre des valeurs aux variables de compilateur à l'intérieur de la source WiX, ce qui signifie que vous pouvez simplement transmettre la nouvelle version et le code du produit (ou juste la version) à candle.exe, light.exe. Voir également le lien ci-dessous (msbuild). J'essaierai de dénicher un meilleur bientôt.


Quelques liens:

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