web-dev-qa-db-fra.com

Installateurs: configuration WIX ou Inno?

Je compare ces deux outils. L'impression que j'ai est:

  • Inno Setup ne produit pas de MSI, mais peut faire tout ce que WIX peut faire.
  • WIX produit un MSI, mais a une courbe d'apprentissage abrupte

Êtes-vous d'accord avec cette caractérisation? Quelles sont les autres différences? Comment WIX # secoue-t-il cette histoire? Étant donné qu'Inno Setup n'utilise pas le programme d'installation Windows, a-t-il des problèmes de désinstallation? Inno Setup peut-il, sur commande, rétrograder une installation vers une version antérieure - ou peut-il uniquement installer/mettre à niveau des applications?

43
Brent Arias

Cela fait longtemps que je n'ai pas travaillé avec MSI, lorsque je suis passé à InnoSetup, je n'ai jamais regardé en arrière. 

Je ne voulais pas que mon installation soit un casse-tête. J'avais besoin de quelque chose où je pourrais "Définir et oublier"

Par défaut, InnoSetup produit une désinstallation. Il peut gérer les besoins d’installation et de désinstallation simples ou complexes. 

Avec InnoSetup Vous pouvez mettre à niveau des applications de différentes manières. 

  • Initialement, nous avons utilisé la méthode overwrite qui a simplement remplacé l'installation existante.
  • Récemment, nous avons basculé la désinstallation automatique de la version précédente lors de l’installation de la nouvelle version. 

Avec InnoSetup, les versions antérieures sont généralement désinstallées et réinstallées.

44
Robert Love

Vous avez raison au sujet de la partie MSI et non de la partie MSI et vous avez raison de dire que la courbe d'apprentissage de la MSI est plus raide. Mais les deux ont des caractéristiques que les autres n'ont pas. Permettez-moi de citer Glytzhkof sur les avantages de MSI.

Glytzhkof dit bonjour ;-) . Veuillez lire mes deux réponses originales sur serverfault.com pour un résumé des problèmes courants rencontrés avec MSI et résultant de sa courbe d'apprentissage abrupte. Cette réponse se concentre ici sur les avantages théoriques, la autre réponse (dans le même fil) résume les problèmes courants de MSI de manière spontanée. Les ajouts sont les bienvenus - je viens d’ajouter les problèmes les plus courants.

  • Transparence (format d'installation ouvert) - Un MSI peut être examiné et Inspecté. Ceci est un énorme problème pour Les grandes entreprises. À l'exception Des actions personnalisées compilées, un fichier MSI Est une "boîte blanche". Si la configuration modifie Quelque chose de fou tel que les paramètres réseau , Vous pouvez La voir.
  • Personnalisabilité - Une MSI peut être personnalisée via des transformations pour répondre aux besoins et aux normes d'une organisation Tout en permettant une interopérabilité Avec les mises à jour du programme d'installation du fournisseur. .] Vous ne modifiez pas le programme d’installation lui-même, Vous créez votre personnalisation dans un fichier Distinct, spécifique à l’organisation Appelé la transformation. Vous êtes libre de Désactiver les actions personnalisées et, en général, Dans le programme d’installation; les actions personnalisées "en noir " Peuvent être approuvées par En contactant le fournisseur explication. Ces fichiers de transformation sont également parfois utilisés pour localiser un fichier MSI dans différentes langues. Plusieurs transformations Peuvent être appliquées à un seul MSI.
  • Normalisation - MSI ne se prête pas à "tout permettre". Il Fournit un cadre complet pour Le programme d’installation, qui [...] comprend également la désinstallation - le tout au format standard . L’interface graphique d’installation est Également normalisée avec des fonctions intégrées Pour prendre en charge l’installation et la désinstallation silencieuses de Qui peuvent être déclenchées à distance.
  • Gestion et génération de rapports - Windows Installer gère une base de données complète de De tous les éléments installés par un produit . Vous pouvez Déterminer de manière fiable si un produit est Installé, quelles fonctions ont été installées Et quelles versions de fichier étaient installées . En outre, vous pouvez obtenir une liste De tous les correctifs qui ont été appliqués au produit de base, le cas échéant.
  • Sécurité - à partir de la base de données d'installation complète, il est possible de détecter les vulnérabilités de sécurité Dans les produits Installés. MSI englobe également les principes "Droits élevés" qui permettent à un utilisateur restreint de déclencher L'installation d'un produit nécessitant l'installation de privilèges d'administrateur . Cela fait Partie de la "fonctionnalité de publication" Qui permet à un administrateur de mettre À la disposition des utilisateurs sans que Les installe sur tous les . postes de travail. Il n'est pas nécessaire de gâcher Avec des droits temporaires pour que les choses Fonctionnent.
  • Validation - Les fichiers MSI peuvent être vérifiés à l'aide de règles de validation afin de s'assurer de leur conformité avec un nombre de règles de cohérence interne (Également appelé ICE). . Les entreprises peuvent Créer leurs propres contrôles ICE pour appliquer Des règles d'entreprise spécifiques et des exigences de . Cela aide beaucoup avec QA.
  • Resiliency - La fonction installation administrateur de l'installateur Windows Fournit un moyen standard d'extraire les fichiers source D'un fichier MSI. Ces fichiers source Peuvent ensuite être placés sur un partage et Être disponibles pour tous les postes de travail pour l'installation de . Ceci garantit que la réparation, la désinstallation et la modification des opérations Sont terminées sans que le support d'installation de Ne soit requis sur un CD ou similaire. Ceci est particulièrement important pour le correctif de et mettre à jour des opérations pour lesquelles peut nécessiter un accès aux anciennes versions des fichiers source dans des circonstances particulières.
  • Rollback - L'installation d'un fichier MSI déclenchera normalement la création d'un point de restauration . En outre, tous les fichiers et éléments de registre Remplacés ou écrasés au cours de l’installation sera sauvegardée et restaurée si l’installation ne réussit pas à terminer. Cela garantit que le poste de travail Reste dans un état stable Même en cas d'échec de l'installation. En tant que , Vous pouvez vous attendre à ce que des fichiers MSI Mal conçus puissent violer les fonctionnalités intégrées De Windows ici. Voir mon autre article de Dans ce fil de discussion pour plus de détails.
  • Correctifs et mises à jour - bien que les correctifs extrêmement complexes dans le programme d’installation de Windows Soient entièrement gérés et enregistrés Sur le système, de sorte qu'un état de sécurité système de Puisse être déterminé en vérifiant ce qui a été installé . Les mises à jour sont normalisées à En quelques variantes de base, ce qui permet d’effectuer les mises à jour de Avec un degré de certitude supérieur. Les systèmes de déploiement Pourront signaler ce que Mises à jour ont échoué et pourquoi.
  • Journalisation - Windows Installer fournit une fonction de journalisation standardisée Qui est nettement supérieure à celle de [.______] incarnations précédentes, bien que presque soit excessivement détaillée. Les fichiers journaux peuvent être Déchiffrés à l'aide d'analyseurs de journaux et Des niveaux de consignation personnalisés peuvent être utilisés pour Éliminer la génération de fichiers journaux trop volumineux Contenant des informations inutiles. .] À des fins de débogage, la journalisation détaillée Est extrêmement utile. Voir Le blog de Rob Mensching pour un bon moyen manuel de lire un fichier journal MSI.
31
Lars Truijens

Je suis en retard pour répondre à ce fil. J'ai utilisé Inno Setup pour les produits de mon entreprise pendant des années. Cela fait très bien la plupart des choses, mais le plus gros obstacle pour moi, ce sont les actions personnalisées. Dans Inno Setup, il faut utiliser une variante du langage Pascal. Avec WiX Toolset, je peux utiliser le C # pour mes actions personnalisées, ce qui est beaucoup plus confortable pour moi. Certes, il s'agit d'une préférence personnelle, mais c'est la raison principale pour laquelle je suis passé d'une excellente plateforme Inno Setup à une excellente plateforme WiX. Cela, et le fait qu’il y ait tant d’avantages à utiliser les MSI, qui ont déjà été mentionnés dans une autre réponse.

Franchement, pour moi, la courbe d'apprentissage de Pascal était supérieure à celle de WiX en utilisant le livre, WiX 3.6: Guide du développeur pour Windows Installer XML .

7
Mike

Nous avons intégré les deux dans notre système de construction. 

Mais nous avons décidé de promouvoir les fichiers innosetup exe pour les clients non professionnels et msi uniquement à la demande pour une raison simple. 

Vous ne pouvez pas expédier une version multi-localisée du programme d'installation avec MSI. Vous auriez besoin d’un installateur pour chaque langue et c’est énorme. Il pourrait y avoir un piratage intensif vous permettant de réécrire l’ensemble de l’interface graphique, mais cela n’est pas bien documenté et il n’ya pas de source ouverte à voler et beaucoup de travail. 

L’interface graphique est la pire partie de WiX, qui est techniquement supérieure à Innosetup.

Avec Innosetup, il est facile d'expédier un exe en 5 langues. Nous avons déjà 6 fichiers binaires [Free, Home, Pro - chaque 32/64 bits], de sorte que l’explosion de variantes serait simplement énorme et si vous commercialisez une version japonaise avec une page Web japonaise et que la première chose à venir est une installation en anglais, c’est une mauvaise impression.

Le MSI pour les utilisateurs professionnels qui ont besoin de stratégies de groupe, etc. est uniquement en anglais et c'est bien pour les utilisateurs professionnels.

3
Lothar

Je me rends compte que cette réponse arrive très tard. Mais je suis tombé sur ce billet et je me suis dit que l'une des réponses à cette question pourrait être simplement: "Pourquoi ne pas avoir les deux?" (manger du gâteau et en avoir aussi) et aussi "Pourquoi dépenser autant d'efforts pour mettre en œuvre les deux alors que je pouvais dépenser autant d'efforts pour un seul et obtenir le second pratiquement gratuitement?"

À cette fin, je présente un script Inno Setup avec prise en charge de MSI:

https://github.com/cubiclesoft/php-app-server/blob/master/installers/win-innosetup/yourapp.iss

Certaines fonctions personnalisées de Pascal utilisées ici entrent en jeu lorsqu'elles sont passées avec /MSI={GUID} sur la ligne de commande qui entraînent des modifications utiles du script (par exemple, aucune icône de désinstallation dans Démarrer ou Ajout/Suppression de programmes).

Et je présente un script WiX avec le support du script ci-dessus Inno Setup:

https://github.com/cubiclesoft/php-app-server/blob/master/installers/win-wix/yourapp.wxs

Le script WiX encapsule le fichier EXE d'installation (basé sur le programme d'installation) basé sur Inno Setup (l'unique charge utile) de manière à ce que le script Inno Setup exécute des tâches d'une manière plus compatible avec MSI et élimine le fichier MSI. Ce n'est pas parfait, mais cela vous fait gagner beaucoup de temps en vous permettant de faire les choses de la manière Inno Setup, puis de tirer le meilleur parti des avantages du MSI (déploiement silencieux GPO/SCCM/DSC, par exemple) sans vous arracher les cheveux. Cela fonctionne mieux si, pour la plupart, vous ne faites que déployer des fichiers sur le système et quelques entrées de registre (une application de base, par exemple). Je ne recommanderais pas cette approche pour une application plus grande comportant de nombreux composants, mais si vous l'essayez et que cela fonctionne, faites-le moi savoir! Le fait d’avoir au moins une version MSI qui lance le fichier EXE d’Inno Setup offre au moins aux administrateurs système effectuant des déploiements quelque chose de très raisonnable à maitriser.

Notez que le script WiX dépend des fonctions personnalisées de Pascal du côté de la configuration Inno. Vous ne pouvez pas prendre n'importe quel ancien programme d'installation d'Inno Setup et l'envelopper avec le script WiX et vous attendre à ce qu'il fonctionne (ce ne sera probablement pas le cas). Mais peut-être qu'une future version de Inno Setup supportera nativement quelque chose de similaire.

1
CubicleSoft