Déployer votre application grâce à InnoSetup

Julien Lelong

Dans ce tutoriel, il est question de vous montrer comment déployer votre application Delphi de façon simple. Nous utiliserons donc l'utilitaire InnoSetup afin d'effectuer cette tâche.

- Titre : Déployer votre application grâce à InnoSetup

- Auteur : Julien Lelong

- Parution : 3 août 2009

- Licence : Copyright ® 2009 Julien Lelong. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Téléchargement et installation

- II. Créer son installeur

- II-A. Etape 1 - Créer un installeur grâce à l'assistant

- II-B. Etape 2 - Fonctionnalités de l'assistant

- II-C. Etape 3 - Informations relatives à l'application à déployer

- II-D. Etape 4 - Choix du dossier d'installation

- II-E. Etape 5 - Ajout des fichiers liés à l'application à déployer

- II-F. Etape 6 - Création de raccourcis

- II-G. Etape 7 - Documentations

- II-H. Etape 8 - Langue de l'installeur

- II-I. Etape 9 - Options de compilation et compilation

- III. Fichier script généré

- IV. Configuration avancée avec ISTools

- V. Remerciements

I - Téléchargement et installation

Dans ce tutoriel, il est question de vous montrer comment déployer votre application Delphi de façon simple. Pour ce faire, nous allons utiliser InnoSetup, que nous allons télécharger à cette adresse : http://www.jrsoftware.org/isinfo.php

Une fois téléchargé, nous lançons l'installation et nous suivons les différentes étapes d'installation. Durant l'installation, vous êtes libre de renseigner les champs comme bon vous semble. Cela n'aura aucun impact sur la suite du tutoriel.

II - Créer son installeur

II-A - Etape 1 - Créer un installeur grâce à l'assistant

Si vous n'avez pas encore lancé InnoSetup, vous pouvez le lancer soit à partir du bureau si vous avez coché la case correspondante lors de l'installation, soit en lançant Compil32.exe situé dans le répertoire d'installation d'InnoSetup (par défaut C:\Program Files\Inno Setup 5).
Nous arrivons donc à la fenêtre demandant si l'on veut créer un nouveau fichier ou si l'on veut ouvrir un fichier existant. Dans notre cas, nous allons créer un nouveau fichier, et ce, en utilisant l'assistant. Pour cela, nous sélectionnons donc "Create a new script file using Script Wizard" et nous cliquons sur "OK" pour valider notre choix et donc passer à l'étape suivante. La fenêtre ci-dessous montre l'option sélectionnée :

II-B - Etape 2 - Fonctionnalités de l'assistant

Cette fenêtre nous signale juste que l'assistant ne couvre pas toutes les possibilités qu'offre InnoSetup et que si l'on veut avoir un fichier de configuration vide, il suffit de cocher la case "Create a new empty script file". Dans notre cas, nous n'allons pas cocher cette case. Nous cliquons donc directement sur "Next" pour la prochaine étape.

II-C - Etape 3 - Informations relatives à l'application à déployer

Nous renseignons les divers champs, à savoir :

- Application name : le nom de notre programme

- Application name incluing version : le nom de notre programme mais cette fois-ci avec son numéro de version

- Application publisher : le nom du créateur (facultatif)

- Application website : le site web où se situe le programme (facultatif)

Une fois les renseignements saisis, nous cliquons sur "Next" afin de passer à la prochaine étape qui consistera à renseigner quelques champs concernant le dossier d'installation du programme.

II-D - Etape 4 - Choix du dossier d'installation

Le premier champ indiquera dans quel dossier "racine" sera installé notre application. Nous avons donc le choix entre :

- Program Files folder : je pense que c'est assez clair ;-)

- Custom : Un dossier autre que vous aurez choisi

Dans notre exemple, nous utilisons le dossier "Program Files". Le second champ comporte le dossier dans lequel seront regroupés les fichiers qui composeront notre application. Par défaut, le nom est celui renseigné lors de l'étape 3. Pour finir, il reste deux cases à cocher :

- Allow user to change the application folder : Permettre à l'utilisateur de changer le répertoire de l'application. (Vivement conseillé)

- The application doesn't need a folder : Ne sert que si l'application n'a besoin d'aucun répertoire. Cela est très rare.

Une fois terminé, nous continuons avec l'étape suivante, l'ajout de fichiers.

II-E - Etape 5 - Ajout des fichiers liés à l'application à déployer

Nous allons ajouter les fichiers nécessaires à notre application comme l'illustre l'image ci-dessous. Bien entendu, ceci n'est qu'un exemple très simpliste mais il vous montrera ce qu'il est possible de faire.

L'interface propose plusieurs "champs/actions".

- Application main executable file : Principal exécutable de l'application à déployer (à sélectionner grâce au bouton "Browse...")

- Allow user to start the application after Setup has finished : Permettre à l'utilisateur de lançer l'application à la fin de l'installation (recommandé)

- The application doesn't have a main executable file : L'application n'a pas d'exécutable principal (assez rare, donc généralement décochée)

- Other application files : Fichiers supplémentaires à rajouter en plus de l'exécutable

Pour ajouter les fichiers supplémentaires, nous avons deux boutons :

- Add file(s) : Permet d'ajouter des fichiers au même niveau que l'exécutable

- Add folder : Permet l'ajout de répertoire complet

Dans mon cas, j'ai ajouté le fichier "Stations.rwp" grâce à Add file(s) et j'ai rajouté le répertoire "Photos Stations" contenant le logo de chaque station (NRJ, Europe2, ...). Au passage, lors de l'ajout de ce dossier, InnoSetup nous demande si l'on souhaite inclure tous les sous-dossiers (et leurs fichiers donc) contenus dans "Photos Stations" comme le montre l'image ci-dessous. Nous répondons dans la plupart des cas oui, après c'est à vous de juger ce qui est utile ou non ;-).

Rien ne sert d'ajouter à nouveau l'exécutable principal dans la liste des fichiers à ajouter vu que celui-ci a déjà été renseigné dans le premier champ.

Lorsque tout est OK, nous cliquons sur "Next" pour la prochaine étape, la création de raccourcis.

II-F - Etape 6 - Création de raccourcis

L'interface propose quelques options liées à la création de raccourcis. Dans le champ "Application Start Menu folder name", nous renseignons le nom du dossier sous lequel l'application pourra être lancée via le menu "Démarrer-Programmes". Par défaut, c'est le nom de l'application que l'on a renseigné dans l'étape 3. Personnellement, je la laisse généralement par défaut.
Ensuite, nous avons une série de cases à cocher :

- Allow user to change Start Menu folder name : Permettre à l'utilisateur de changer le nom du dossier du menu démarrer-programmes.

- Allow user to disable Start Menu folder creation : Permettre à l'utilisateur de désactiver la création des raccourcis dans le menu démarrer.

- Create an Internet Shortcut in the Start Menu folder : Permettre l'ajout du site Web au menu démarrer

- Create an Uninstall icon in the Start Menu folder : Permettre d'ajouter une icône de désinstallation dans le menu démarrer.

- Allow user to create a desktop icon : Permettre à l'utilisateur de créer un raccourci sur le bureau.

- Allow user to create a Quick Launch icon : Permettre à l'utilisateur de créer un raccourci dans la barre des tâches.

En ce qui me concerne, je laisse pas mal de liberté à l'utilisateur. Une fois que tout est bon, étape suivante ...

II-G - Etape 7 - Documentations

Cette fenêtre nous permet de définir ce que l'on souhaite afficher avant et après l'installation ainsi que la licence de l'application que nous distribuons. Ici, je n'ai mis que la licence puisque je n'ai que cela.

II-H - Etape 8 - Langue de l'installeur

C'est ici que nous définissons les langues disponibles de l'installeur. Autant dire que l'on cochera en général "French", et d'autres si nécessaire selon la "population" que l'on souhaite toucher.
Dernière étape ... la compilation :-)

II-I - Etape 9 - Options de compilation et compilation

Le premier champ permet d'indiquer le répertoire de sortie de notre installeur, quant au second, il permet de définir le nom de l'exécutable généré.
Le troisième champ permet de définir une icône personnalisée (.ico) pour l'installation et enfin, le dernier champ, permet de définir un mot de passe afin de protéger l'installeur. Il nous reste plus qu'à cliquer sur "Next" pour arriver sur la dernière fenêtre comme présentée ci-dessous.

InnosSetup nous demande si l'on veut compiler le script maintenant. Comme vous l'aurez deviné, nous cliquons sur "Oui". Et là, une ultime question se pose à nous... Voulons-nous enregistrer le script avant la compilation ? Hé bien, je dirais que généralement, je clique sur "Oui" afin de remanier mon script à la main si jamais je me suis trompé.

III - Fichier script généré

Voilà, l'exécutable est généré (dans le dossier défini auparavant), et nous avons accès au script généré grâce à l'assistant.

Comme nous pouvons le voir, nous retrouvons les informations rentrées tout au long de l'assistant. Nous pouvons donc les modifier directement dans le script et générer un nouvel installeur. Si jamais vous avez modifié quelques valeurs et que vous voulez recompiler l'installeur, vous pouvez soit passer par le menu "Build-Compile" soit utiliser le raccourci "Ctrl+F9".

IV - Configuration avancée avec ISTools

Il existe une application qui s'appelle ISTools et qui permet de configurer notre installeur de façon plus avancée. Ce tutoriel ne couvre pas l'utilisation de cet utilitaire mais néanmoins, pour les plus curieux d'entre vous, voici le lien qui vous permettra de le télécharger : http://www.istool.org/.
Je vous renvoie également à deux tutoriels :
Distribuer vos applications VB6 avec InnoSetup
La section [Code] de InnoSetup

Eventuellement, j'essaierais d'écrire un tutoriel sur l'utilisation d'ISTools. En attendant, vous avez déjà de quoi faire pour réaliser des installeurs basiques mais efficaces! ;-)

V - Remerciements

Je remercie Pedro ainsi que Franck Soriano pour m'avoir aidé à éclaircir ce tutoriel.