Est-il possible / judicieux d’envelopper un programme d’installation Inno Setup dans un fichier MSI pour une distribution plus facile via AD?

StackOverflow https://stackoverflow.com/questions/71203

  •  09-06-2019
  •  | 
  •  

Question

Notre installateur est écrit avec Inno Setup et nous en sommes assez satisfaits. Pourtant, certains clients continuent de demander un programme d’installation MSI qu’ils pourraient plus facilement distribuer via Active Directory. Nous avons déjà tout mis en œuvre pour que le programme d'installation gère correctement les installations automatisées et sans assistance en étendant le mécanisme / LOADINF d'Inno Setup avec nos propres options.

Afin de satisfaire les clients qui demandaient MSI, je pensais simplement à envelopper notre programme d’installation standard dans un fichier MSI, éventuellement créé avec WIX. La question qui se pose est la suivante: puis-je conserver la grande configurabilité offerte par notre programme d’installation actuel? Comment puis-je exposer les options du programme d'installation d'Inno Setup via le MSI externe dans le scénario d'installation sans assistance / en masse?

Notez que je n’ai pas encore vraiment approfondi mes connaissances en création de MSI et en WIX. Pour le moment, je voudrais seulement savoir si les personnes qui savent vraiment de quoi ils parlent pensent que ce serait une approche réalisable / raisonnable pour investir notre énergie en premier lieu ...

[EDIT:] Au départ, j’imaginais pouvoir utiliser l’approche d’extraction et d’exécution temporaires, c’est-à-dire que le MSI servirait simplement de vaisseau pour livrer le programme d’installation Inno au PC cible et l’exécuter dans le mode / VERYSILENT . Mais je suppose que les clients qui demandent le MSI veulent également pouvoir désinstaller ou même modifier l’installation à partir d’un emplacement central et j’imagine que cela ne sera pas possible dans ce scénario, ne serait-ce pas?

P.S .: Nous avons aussi une ancienne copie de WISE pour MSI ici, mais cette expérience est en fait la raison pour laquelle nous avons commencé à utiliser Inno au lieu de cela ...

Était-ce utile?

La solution

Non, il n’ya aucun moyen de le faire tout en conservant la fonctionnalité «implicitement» demandée par vos clients. Le seul «habillage» dans MSI que vous pouvez faire est de l'extraire lors de l'installation et de démarrer votre programme d'installation InnoSetup à partir de l'emplacement temporaire où vous avez extrait. MSI est une méthode de travail fondamentalement différente: InnoSetup (& NSIS & la plupart des autres installateurs) adopte une approche centrée sur le code: vous programmez les 'étapes' pour installer vos données. MSI est une base de données et adopte une approche «centrée sur les données»: vous indiquez quels fichiers doivent être installés et le «runtime» de MSI fait le reste. Cela vous donne le contrôle de version et le contrôle exact de ce qui se passe où.

En bref, pour donner à vos clients ce qu’ils veulent (c’est-à-dire la facilité de déploiement apportée par MSI avec AD), vous avez besoin de MSI «adéquats». Bonne chance avec ça, c'est une douleur majeure à mon humble avis. Mais cela donne de bons résultats une fois que vous maîtrisez MSI & amp; WiX.

Autres conseils

J'ai eu ce problème plusieurs fois moi-même. Par conséquent, j'ai créé un moyen standard d'aborder ce problème et cela a abouti à un assistant qui vous guidera à travers les étapes. L’outil prendra en charge les éléments suivants:

  1. Enveloppez l'exe dans une MSI.
  2. Désinstallation de l'assistance.
  3. Afficher uniquement un programme dans "Ajouter ou supprimer des programmes".
  4. Vous permet de transmettre des arguments de ligne de commande tels que / SILENT à la configuration intégrée lorsque vous exécutez le package MSI avec MSIEXEC.EXE.

Vous pouvez l'obtenir à l'adresse http://www.exemsi.com (la version de base est gratuite)

Utilisez mon formulaire de contact et laissez-moi savoir ce que vous pensez: -)

En réponse à votre modification: oui, ce que vous décrivez empêchera les mises à niveau (autres que supprimer / réinstaller) et la configuration à distance, car la base de données MSI ne saura rien du contenu de votre programme d'installation.

De nombreux packages d'installation ont démarré le 'support' de MSI de cette manière, par exemple: InstallShield l'a fait. C'est la raison principale pour laquelle je les ai abandonnées, parce que les installateurs réalisés de cette manière sont inutiles pour les besoins de MSI. Je ne sais pas si les versions récentes d’InstallShield sont meilleures. La dernière fois que j’ai vérifié, il y a 5 ans.

Il est très facile de créer un kit d’emballage qui installe automatiquement INNOSETUPper de MSI. Pour les fonctionnalités de base (installation / désinstallation), cela suffit. La plupart des fournisseurs n’implémentent pas la réparation de toute façon.

  1. créer un script silent.inf pour INNO Setup (facultatif)

  2. créer install.bat qui appelle

    myinnosetup.exe / silent / NOCANCEL / norestart / Components = "xxx"

    vous pouvez utiliser / verysilent
     vous pouvez charger les paramètres de silent.inf avec /LOADINF="silent.inf"

  3. crée le fichier d'installation MSI qui appelle install.bat (avec des paramètres si nécessaire)

  4. fournissez les 4 fichiers à votre client et celui-ci peut déployer votre set Inno Inno avec SMS ou ActiveDirectory et tout le monde est content:)

Je dirais qu’il est possible de faire tout ce que vous voulez avec une configuration Inno encapsulée dans un fichier MSI, mais c’est loin d’être trivial et que l’utilisation de WiX pourrait rendre cette tâche plus difficile. En bref, je ne le recommanderais pas vraiment.

Mais si vous voulez vraiment ...

Les fichiers MSI sont simplement des fichiers de base de données avec des instructions de script supplémentaires et intègrent souvent le fichier .cab contenant les éléments que vous souhaitez réellement installer.

Si vous utilisez Wise, vous générerez des scripts par défaut auxquels vous pourrez ajouter des conditions Windows Installer et contrôler les événements de manière plus fine (Installer, réparer, modifier, désinstaller) afin qu'ils appellent des actions équivalentes sur votre installation Inno Setup. script devant être installé et conservé dans un dossier temporaire.

Cela n'a aucun sens de mélanger les technologies d'installation.

Si vous mélangez le premier problème avec le programme de désinstallation. sans modifications, vous obtenez 2 programmes de désinstallation de votre programme.

il y a des articles commençant par Windows Installer dans le "magazine des développeurs"

  • Entwickler Magazin (Numéro: 03.09 / 15.04.2009) Article: Les packages MSI avec logiciel open source génèrent une partie 4
  • Entwickler Magazin (Numéro: 02.09 / 12.02.2009) Article: Les packages MSI avec logiciel open source génèrent une partie 3
  • Developer Magazine (Numéro: 01.09 / 10.12.2008) Article: Les packages MSI avec logiciel open source génèrent une partie 2
  • Entwickler Magazin (Numéro: 06.08 / 15.10.2008) Article: Création de packages MSI avec le logiciel Open-Souce

http://developer-magazine.com/

L’installateur Windows devrait être la seule technologie pour vos installations. sa pérennité et sa stabilité!

Emballer une configuration Inno dans un package MSI n’est pas une tâche aisée. Cependant, c'est possible. Il existe de nombreux outils gratuits qui peuvent être utilisés pour cela. Vous devez en choisir un qui prend également en charge les désinstallation (s) et les mises à niveau.

J'ai trouvé un seul outil gratuit qui prend en charge les mises à niveau et la désinstallation. Découvrez http://www.exemsi.com/inno-setup-and-msi

Cela équivaudrait à fournir un fichier ZIP et à appeler unzip d’ici la fin de l’installation.

Avec une telle approche, AD et Windows Installer seraient dupes comme s’il s’agissait d’une installation MSI correcte, mais comme ce n’est pas le cas, ils se retourneraient contre vous dès la première occasion.

N'allez pas de cette façon.

Et WiX est un ensemble d’outils supérieur à InnoSetup, de toute façon, le temps que vous passerez à l’apprentissage et au portage sera rentable grâce à un meilleur support de la collaboration.

Bien que le dernier commentaire soit réalisable et réalisable, passer à MSI est le meilleur moyen de gérer cela.

presque toutes les grandes organisations stipulent MSI seulement, il y a une multitude de raisons pour lesquelles.

1) d'abord, la facilité de déploiement 2) la sociabilité des applications est plus importante pour certains 3) auto-guérison

inno setup et d’autres outils de ce type n’implémentant pas Windows Installer ne peuvent tout simplement pas offrir une convivialité à l’application de la même manière que Windows Installer.

vous devez comprendre que la configuration d’Inno est un logiciel conçu pour déployer une seule application.

Windows Installer est un cadre complet traitant de la sociabilité, de l'emprunt d'identité de l'utilisateur, de l'élévation de l'utilisateur, de l'auto-réparation, de la correction du profil de l'utilisateur.

La fonctionnalité de ces deux appareils n’est même pas proche de celle de l’autre, mais la configuration dans ma tête est complètement démesurée en termes de comparaison avec l’installateur Windows.

Peut-il créer des installateurs performants? Oui Est-il facile à utiliser ? Oui Crée-t-il de bons installateurs uniques? Oui Est-ce le meilleur choix pour l'entreprise? non

Les premiers outils développés par microsoft & SMS; SMS Installer " était innosetup il y a 10 ans. Les choses ont radicalement changé dans le monde de l'installation et une configuration inno n'a tout simplement pas suivi le rythme de ce changement.

Je dois saisir une valeur custome sur le doseur silent.inf (et non une valeur de paramètre de configuration inno établie) comme si LOADINF le permettait.

Remarque: si vous utilisez makemsi, vous n'avez pas besoin d'inclure une batte, vous pouvez utiliser $ WrapInstall.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top