web-dev-qa-db-fra.com

Logiciels gratuits pour les installateurs Windows: NSIS vs WiX?

Je dois choisir un progiciel pour installer le logiciel. NSIS et WiX semblent prometteurs. Lequel recommanderiez-vous par rapport à l'autre et pourquoi?

N'hésitez pas à proposer autre chose si vous pensez que c'est mieux que ces deux-là.

65
John Smith

Si vous souhaitez obtenir un programme d'installation aujourd'hui, avec le minimum de frais généraux, utilisez NSIS. Langage de script simple, bonne documentation, rapide.

Si vous souhaitez créer des fichiers MSI, intégrer le système transactionnel de Windows Installer et avoir beaucoup de temps à consacrer à l'apprentissage du modèle déclaratif utilisé par Windows Installer, consultez WiX.

76
Shog9

Aussi, donnez peut-être Inno Setup un coup de feu. Bien sûr, vous pourriez trouver cela un peu étrange car cela vous oblige à écrire du code personnalisé en Pascal, mais là encore, il n'y a presque plus rien qui vous oblige à faire du code personnalisé - Inno Setup est vraiment, vraiment puissant.

Inno Setup génère également des installateurs EXE - si vous voulez que votre application soit facilement déployable dans les environnements d'entreprise, vous devrez probablement suivre la voie WiX, bien que personnellement , J'ai eu assez de problèmes liés à MSI en tant qu'utilisateur que je préférerais personnellement que MSI meure une mort lente et horrible (enfin - en fait, une mort rapide serait favorable à ce stade - mais horrible, cela peut très bien être) , alors allez-y et faites le fichier EXE.

Alors.

  • [~ # ~] nsis [~ # ~] : vous oblige à apprendre une nouvelle langue. Crée des installateurs EXE.
  • WiX : Création de configuration déclarative, bien qu'un peu bas niveau. Cela nécessite certainement des connaissances fondamentales en MSI que je trouve vraiment difficile à obtenir en raison du manque général de tutoriels faciles.
  • Inno Setup : vous permet de créer des installateurs EXE assez puissants avec une syntaxe facile, largement basée sur un fichier .INI, mais il vous oblige à apprendre Pascal si vous besoin d'un codage personnalisé.

En tant que codeur de longue date Delphi , j'allais toujours Inno Setup, bien que ce soit probablement très biaisé (je suis un fan d'Inno Setup depuis environ 1996).

38
pilif

C'est à peu près un doublon de * Quel est le meilleur choix pour construire des installateurs Windows , donc je vous suggère de vérifier les nombreuses réponses là-bas (il y a aussi une discussion sur les alternatives commerciales).

La question que vous devez vous poser est: Dois-je être compatible avec les scénarios de déploiement d'entreprise pour le déploiement SMS/ Active Directory ? Si la réponse est oui, alors apprenez les principes fondamentaux de MSI .

Si vous souhaitez expédier une application qui est vraiment juste pour le plaisir ou qui n'a pas besoin d'être prise en charge dans un environnement d'entreprise et que vous ne voulez pas passer beaucoup de temps à vous mettre à jour, apprenez NSIS.

14
saschabeaumont

NSIS vous donnera un exe, WiX vous donnera un MSI.

J'ai utilisé NSIS pour regrouper quelques installateurs MSI dans un seul exe et faire des vérifications supplémentaires, je ne pouvais pas comprendre comment utiliser le projet d'installation VS.NET.

INNO Setup est un autre programme d'installation que vous voudrez peut-être consulter. Il est plus proche de NSIS que de WiX, mais les installateurs qu'il fait ressemblent plus à des installateurs standard qu'aux installateurs NSIS.

Je n'ai pas utilisé WiX parce que je n'aimais pas le langage de définition XML utilisé pour construire l'installateur et je ne pouvais pas savoir s'il supportait l'empaquetage d'autres MSI dépendants

Des trois, j'ai préféré NSIS car il avait la meilleure documentation.

10
Darryl Braaten

J'utilise NSIS au travail (je l'ai apporté et converti nos anciens trucs InstalShield), et j'aime ça.

Je ne peux pas parler des autres options, mais NSIS peut être délicat pour un flux d'installation plus compliqué et le langage de script est un peu brut pour des choses plus détaillées (plus comme assembleur qu'un langage de haut niveau).

6
crashmstr

Personnellement, je n'ai essayé que le WiX. Il a une courbe d'apprentissage légèrement abrupte (sauf si vous parvenez à trouver une belle interface graphique pour cela), mais devrait finalement être payante car il utilise le format Windows Installer (MSI) plutôt qu'un EXE personnalisé comme (je crois) NSIS le fait . L'approche déclarative de WiX/MSI est généralement privilégiée de nos jours, et est considérée comme plus fiable. Cependant, si vous voulez juste une solution rapide et facile, NSIS pourrait être l'option car il devrait avoir de nombreux exemples et une bonne base de support (bien que personnellement, j'utiliserais simplement un package d'installation de Visual Studio pour quelque chose comme ça). Ce billet de blog semble discuter assez bien de la question.

4
Noldorin

J'ai utilisé NSIS. Je ne peux pas vraiment commenter les autres, mais je pense qu'il y a pas mal de commentaires qui aident à prendre une décision objective (si ce n'est déjà fait). Le logiciel HMNSIS est idéal pour créer un programme d'installation simple pour une application simple. Il a un assistant intégré et est bon petit IDE pour NSIS.

Je conviens également qu'il s'agit d'un logiciel gratuit assez bien documenté. Cependant, comme je l'ai dit, étant donné que je n'ai besoin de rien d'autre (parce que j'aime NSIS), je ne peux pas comparer.

1
Daniel Casserly

Vous devriez jeter un œil à InstallJammer . Non seulement il est gratuit, il est multiplateforme et très facile à utiliser. La plupart des actions courantes ne nécessitent aucun script, mais avec un langage de script puissant sous le capot, vous pouvez faire une installation faire à peu près tout ce que vous voulez.

Si tout ce que vous voulez, c'est un programme d'installation de base pour installer votre application, vous pouvez le faire construire en quelques minutes dès le premier démarrage. Si vous voulez quelque chose de plus puissant, les capacités et la documentation sont excellentes.

0
Damon Courtney