I. Présentation▲
Dans ce tutoriel je vais vous indiquer comment utiliser InstallWIz.Net afin de créer des installations pour une application Microsoft .Net et des modules partagés (écrit en C#). InstallWIz.Net contient un assistant que nous utiliserons afin de nous simplifier la tâche.
II. Installation▲
Tout d'abord, avant d'installer InstallWIz.Net, il vous faut avoir installé sur votre machine le Microsoft .Net Framework 1.1.
Vous devez ensuite télécharger la dernière installation en date disponible ici et suivre les étapes de l'assistant en choisissant de préférence l'installation complète.
Pour avoir la liste complète des éléments requis par instalWIz, consultez cette page.
III. Création d'un projet d'installation▲
III-A. Étape 1 - Ouvrir l'assistant▲
Après avoir installé InstallWIz.Net, vous avez à votre disposition des raccourcis situés sur le bureau et dans le dossier InstallWIz du menu démarrer. Exécutez InstallWIz puis ouvrez un nouveau projet d'installation standard via le menu Fichier->Nouveau.
Sélectionnez ensuite le type de projet Projet d'installation standard .Net puis cliquez sur Nouveau fichier. Vous verrez apparaître la boite de dialogue de sélection du mode de projet.
Sélectionnez le mode Projet d'installation InstallWIz.Net standard et cochez la case à cocher se situant en bas à gauche : Utiliser l'assistant de projet.
Pour terminer, cliquez sur OK.
Seuls les types de projets d'installation standard et de module partagé sont disponibles. Les autres types de projets, ici grisés pour le moment, seront disponibles dans les prochaines versions d'InstallWIz.Net.
III-B. Étape 2 - Saisir les valeurs▲
Maintenant que nous sommes dans l'assistant de projet, nous pouvons donc modifier n'importe quelle valeur puis aller à l'étape suivante en cliquant sur Suivant.
Dans la page Propriétés générales, la propriété Nom du projet correspond au titre que vous donnez à votre projet, mais pas à l'installation. Le nom affiché de l'installation correspond à la propriété Titre.
La page suivante nous permet de spécifier le Guid (ou Id) de l'installation. Il est préférable de laisser les valeurs par défaut ou de cliquer sur Générer pour en construire un nouveau.
Les Guid sont utilisés par InstallWIz pour identifier de manière unique chaque installation. Si une installation portant le même Guid est déjà installée sur la machine cible, par défaut InstallWiz proposera de la désinstaller. Les futures fonctionnalités permettront aussi de la mettre à jour.
Dans la page suivante, l'assistant nous demande le nom du composant principal d'installation. Nous laisserons la valeur par défaut et passerons à la page « Fichiers à installer ».
Dans cette page nous devrions normalement spécifier le dossier dans lequel se situent les fichiers de notre installation. Vous pouvez spécifier un dossier, mais dans notre exemple nous laisserons ce champ vide.
Laisser ce champ vide incitera l'assistant à nous demander si nous voulons vraiment créer une installation « vide » de fichiers. Répondez oui, car nous la « remplirons » manuellement.
Nous avons désormais une installation fonctionnelle, mais nous devons l'enregistrer avant de poursuivre.
Après avoir enregistré notre projet, nous pouvons le compiler en cliquant sur le menu correspondant situé juste au-dessus du menu Enregistrer. Pour voir le résultat de notre projet, il suffit de cliquer sur le menu Lancer, situé juste en dessous du menu Compiler, ou d'atteindre avec l'explorateur Windows le dossier dans lequel nous avons enregistré le projet, puis en cliquant dans le sous-dossier « Output » sur l'application « Setup.exe » ou « UsrSetup.exe ».
Les applications « Setup » et « UsrSetup » exécutent toutes les deux la même installation. En réalité l'application « Setup » lance « UsrSetup » après avoir vérifié que le Microsoft.Net Framework a bien été installé.
III-C. Étape 3 - Ajout des fichiers▲
Ajoutons maintenant des fichiers à notre installation.
III-C-1. Création de composants▲
Chaque installation InstallWIz.Net est organisée en composant. Ces composants contiennent les fichiers, les raccourcis, les clefs de la base de registre, etc. Il faut dans un premier temps créer un composant d'installation.
Pour cela, déplacez-vous dans l'onglet « Composants » de l'éditeur de projets :
Comme vous pouvez le remarquer, l'assistant a déjà créé un composant nommé MyInstallationComponent et a également ajouté un composant nommé System.
Le composant System est particulier, car il n'est pas installé. N'ajoutez donc pas d'éléments (fichiers, raccourcis…) à ce composant, cependant si vous souhaitez ajouter un fichier lisez-moi et/ou un fichier de licence, vous devrez ajouter un fichier readme.txt et/ou licence.txt au composant System.
Note
Cette spécificité du composant System n'existe pas dans un projet de modules partagés.
Dans notre installation, nous prévoyons de créer des raccourcis. Nous allons donc créer un composant permettant la création de raccourcis. Pour ce faire, vous devrez cliquer avec le bouton droit de la sourie sur la liste et sélectionner le menu Ajouter un composant.
Nous appellerons ce composant « Raccourcis » et laisserons les autres propriétés avec leur valeur par défaut. Cela aura pour conséquence d'installer les raccourcis si l'utilisateur procède à une installation standard (mode d'installation sélectionné par défaut), de ne pas les installer dans un mode d'installation minimale et de les installer dans une installation complète de l'application.
Le champ « Composant compressé » permet de spécifier si les fichiers ajoutés au composant sont ou non compressés (compression ZIP).
III-C-2. Ajout de fichiers dans un composant▲
Nous allons maintenant choisir les fichiers à ajouter à notre installation.
Déplacez-vous vers l'onglet Fichiers et sélectionnez dans l'arbre de valeur à gauche le composant MyInstallationComponent.
Dans notre exemple, nous installerons le bloc-notes.
Pour l'ajouter, faites un clic droit sur la liste (après avoir sélectionné le composant MyInstallationComponent) et choisissez Ajouter un fichier. Dans la boite de dialogue qui apparaît, parcourez les répertoires de votre machine pour sélectionner le fichier C:\Windows\Notepad.exe ou C:\Windows\System32\Notepad.exe et validez.
La boite de dialogue suivante nous demande où sera installé ce fichier sur le poste de destination, le répertoire proposé par défaut est {SETUPDIR}\Bin, validez ce choix.
Il est possible d'utiliser des variables prédéfinies qui sont :
{SETUPDIR} - représente le dossier d'installation choisi dans l'assistant par l'utilisateur ;
{UNINSTALLER} - désinstalleur créé par l'installation ;
{_DESKTOP} - bureau de l'ordinateur de destination ;
{_PROGRAMS} - menu démarrer de l'ordinateur de destination
Pour consultez la liste complète de ces variables, parcourez dans l'aide menu Aide le dossier Mise en route->Informations complémentaires->Variables internes.
III-D. Étape 4 - Création de raccourcis▲
Créons maintenant un raccourci, pointant vers le bloc-notes, que l'on copiera sur le bureau. Pour cela, déplacez-vous vers l'onglet Raccourcis fichiers et sélectionnez le composant Raccourcis dans l'arbre de valeur situé dans la partie gauche.
Nous devons d'abord créer le dossier dans lequel sera le raccourci. Faites un clic droit sur l'icône du composant Raccourcis et choisissez le menu créer un dossier. Remplacez la valeur {SETUPDIR} par {_DESKTOP}. Grâce à cela nous pourrons installer un raccourci sur le bureau. Validez votre choix.
Cliquez sur l'icône du dossier {_DESKTOP} et faites dessus un clic droit. Choisissez cette fois-ci le menu Ajouter un lien.
Dans le premier champ, saisissez la valeur bloc-notes qui est le nom de notre raccourci.
Dans la zone de saisie Fichier vers lequel créer le raccourci, mettez comme valeur {SETUPDIR}\Bin\Notepad.exe (Dossier d'installation de notre fichier plus son nom).
Le champ suivant indique quelle image utiliser pour le raccourci. Saisissez la même valeur ({SETUPDIR}\Bin\Notepad.exe) puis validez la boite de dialogue.
Nous pouvons donc maintenant voir le résultat de notre projet. Dans le menu de gauche cliquez sur compiler puis sur lancer. Effectuez l'installation et vérifiez sur le bureau : un raccourci nommé « bloc-notes » nous permet d'ouvrir le fichier « notepad.exe » situé dans le répertoire « C:\Program Files\Nom de l'installation\Bin ».
Vous pouvez aussi créer un raccourci pour désinstaller votre application (bien qu'elle soit enregistrée dans la liste « Ajout/Suppression de programmes » du panneau de configuration).
Pour cela il vous suffit de créer de la même manière un raccourci, mais au lieu de spécifier « {SETUPDIR}\Bin\Notepad.exe » comme Fichier vers lequel créer un raccourci et Image à utiliser pour le raccourci, vous devez utiliser la variable « {UNINSTALLER} ».
IV. Création et utilisation d'un module partagé▲
IV-A. Présentation▲
Les modules partagés d'InstallWIz.Net permettent de rendre communes à plusieurs installations une série d'actions identiques comme la copie de fichiers ou la création de raccourcis. Ils peuvent être utilisés de trois manières (chaque mode porte un nom qui peut être édité dans le projet de module partagé) :
Nom |
Action |
---|---|
vmStandalone |
Le module est directement fusionné à l'installation et est installé comme un composant normal. Aucun enregistrement du module n'est effectué |
vmInternal |
Le module ne peut être installé qu'une seule fois par installation, mais n'a aucune influence sur les autres installations de la machine cible l'utilisant |
vmSystem |
Le module ne peut être installé qu'une seule fois par machine. |
IV-B. Création d'un module partagé▲
La marche à suivre pour créer un module partagé est très proche de celle visant à créer une installation normale.
Pour en créer un, choisissez comme type de projet Projet d'installation standard .Net et cochez la case Utiliser l'assistant de projet, mais dans le mode de projet à la différence d'une installation normale, choisissez Projet de module partagé InstallWIz.Net et suivez les étapes proposées par l'assistant.
Vous pouvez ensuite spécifier les mêmes éléments (fichiers…) que pour une installation normale. Le module partagé une fois que vous aurez compilé l'installation se trouvera dans « {Dossier de votre projet}\Output\Deploy\VotreModule.imm ».
C'est ce fichier que vous devez utiliser pour référencer votre module partagé dans une autre installation InstallWIz.Net.
IV-C. Utilisation d'un module partagé▲
Pour utiliser un module partagé dans une installation, déplacez-vous vers l'onglet Modules partagés. Sélectionnez le composant dans lequel vous voulez ajouter votre module puis dans la liste de droite faites un clic droit et choisissez le menu Ajouter un module partagé. Vous pouvez ensuite parcourir votre disque dur pour sélectionner le module (*.imm) voulu.
Le module partagé n'est installé que si son composant parent est installé. Si vous voulez être certain que votre module sera toujours installé, créez un composant et cochez dans ses propriétés l'option Composant obligatoirement installé. Ajoutez ensuite vos modules partagés dans ce composant.
V. Désinstallation spéciale▲
Par défaut, quand vous lancez l'installation d'une application déjà installée, la désinstallation de celle-ci s'exécute, cependant il est possible de modifier la liste des composants installés ou encore de réinstaller ses composants.
Pour cela déplacez-vous vers la page Autres paramètres, faites un clic droit sur la valeur OnAppExistsInReg puis dans le menu cliquez sur Modifier un élément.
Si la valeur OnAppExistsInReg n'existe pas, vous pouvez de la même manière la créer en cliquant sur Ajouter un élément.
Dans la boite de dialogue qui apparaît modifiez la valeur DELETE en MODIFY, validez et compilez l'installation.
Maintenant le raccourci de désinstallation d'une application ainsi que le fait de lancer l'installation d'une application déjà installée mèneront vers cette boite de dialogue :
VI. Explication des scripts▲
InstallWIz.Net est basé sur une large utilisation de scripts codés en C# afin de créer l'installeur. Ils se divisent en deux parties…
VI-A. Chargeur d'installation▲
Le chargeur d'installation a pour fonction d'initialiser le moteur d'exécution InstallWIz.Net et de lancer la séquence principale. Son code se trouve dans le dossier Lib du répertoire d'installation d'InstallWIz.Net.
La liste des fichiers C# de son code source est accessible dans l'onglet Fichiers sources C# et ses ressources (fichiers *.ressources) sont dans l'onglet Fichiers ressources.
Il est préférable de ne jamais modifier le code du chargeur d'installation.
VI-B. L'interface d'installation▲
L'interface de l'installeur est constituée des fichiers présents dans l'onglet Séquences d'installation.
Chaque fichier constitue en général une des pages de l'assistant d'installation. Vous pouvez modifier le code de ses pages ou en ajouter d'autres.
Le script contenant l'ordre d'affichage des pages se trouve dans l'élément Package\Actions\Wizard\SetupGuiManager\StandardInstallerGui.
Le « cœur » d'InstallWIz est formé par l'ensemble des dll InstallWIz.dll, WizDB.dll,lzip.dll ainsi que stdaddins.dll. Pensez donc à toujours référencer ces dll si vous modifiez un script, car sinon une erreur d'exécution sera levée.
VII. Messages du compilateur▲
Lors de la compilation du projet d'installation, des erreurs peuvent survenir. Pour vérifier l'existence d'erreurs après la compilation d'un projet, c'est-à-dire lorsque la boite de dialogue affichant la progression de la compilation disparaît, vérifiez la liste des messages de l'onglet Sortie.
- Si une croix rouge apparaît à côté d'un message, une erreur est survenue. Il se peut que ce soit une erreur provoquée par un fichier inexistant, ou une erreur dans votre script C#.
- Si une erreur de script a lieu dans un fichier situé sur le disque dur, l'erreur est dans ce cas relative au script par défaut (onglet Fichiers sources C#). Cependant si l'erreur est relative à un fichier situé dans Package\*, il s'agit d'une erreur du script de séquence (onglet Séquences d'installation).
Si une erreur survient dans le script des séquences, vous pouvez facilement les voir en vous déplaçant dans l'objet Séquences d'installation, et ensuite dans l'arbre des valeurs (dans la partie gauche), sélectionner une erreur dans l'entrée Erreurs de compilation. Notez toutefois que cette entrée n'est pas visible si aucune erreur n'est survenue.
VIII. Rapport de bugs▲
InstallWIz.Net étant pour l'instant dans une version bêta, des erreurs peuvent persister. Si vous veniez à en détecter ou déclencher une, vous pouvez utiliser l'outil de transmission de bug.
Vous pouvez y accéder de quatre manières :
- En utilisant le menu Outil de transmission de bug situé dans la barre d'outils de l'IDE ;
- En utilisant le menu Outil de transmission de bug situé dans le sous-menu « Outils » de l'IDE ;
- En lançant le programme BugPoster.exe situé dans le dossier d'installation d'InstallWIz.Net ;
- En cliquant sur Envoyer le rapport d'erreur dans la fenêtre signalant une erreur du programme.
Les rapports me seront transmis à l'adresse audrey.luxin at wanadoo.fr.
Ce rapport de bugs ne contient que des informations techniques liées à l'erreur (si elles sont disponibles) : la version des fichiers d'InstallWIz, la version de votre système d'exploitation et la date courante.
IX. Suivi des évolutions d'InstallWIz.Net▲
Afin de suivre toutes les informations relatives aux évolutions d'InstallWIz.Net, vous avez la possibilité de consulter le blog d'InstallWIz.Net dans lequel j'annoncerai toutes les nouveautés et mises à jour.
X. Conclusion▲
Grâce à InstallWIz.Net vous pourrez grâce à un assistant créer très rapidement des installations simples ou aller plus loin en réécrivant l'installeur par le biais du code C#.
Voici les évolutions prévues pour InstallWIz :
- support des mises à jour via la vérification des fichiers installés ;
- accès direct aux API pour les développeurs .Net (quel que soit le langage utilisé), et ce, afin de proposer une plateforme leur donnant la possibilité de gérer une configuration ou une machine en s'assurant que chaque action soit valide et que les fichiers concernés n'aient pas été modifiés.
- un éditeur de projet permettant de créer des installations pour Microsoft® Windows Installer en vue d'utiliser toute la puissance de cette plateforme.
XI. Remerciements▲
Je remercie de m'avoir aidé à la rédaction de cet article Laurent Dardenne, pharaonix et neo.51