Une remarque pertinente ?
Une critique impertinente ?
Un lynchage en règle ?
Une invitation sous les tropiques ?

Ecrivez-moi !
Conçu et enseigné tel qu'en lui même, avec pertes, fracas et humour de qualité supérieure            
 par Christophe Darmangeat dans le M2 PISE du Master MECI (Université Paris 7)            

 
 
 
  
 
 
 
Partie 13
Distribuer une application
 
Admettons. Votre application est terminée. Vous avez bien bossé, vous avez regardé partout, il n'y a plus un bug qui traîne, ce coup-ci, c'est sûr, c'est fini, votre calvaire s'achève. Eh bien, pas tout à fait. En effet, il va falloir s'assurer que nous pouvons produire un fichier, ou un ensemble de fichiers, qui s'installe correctement  sur n'importe quelle machine (équipée de Windows), de sorte que le monde entier puisse profiter de votre oeuvre. Or, l'affaire n'est pas toujours évidente.
1. Compiler le projet
Pour compiler un projet, apparemment, rien de plus simple : il suffit de déclencher la commande Générer le projet pour disposer d'un joli exécutable en ordre de marche. Mais deux ou trois points méritent tout de même qu'on s'y arrête, car ils peuvent changer des détails... ou des choses plus importantes.
La commande Propriétés du Projet va notamment nous donner la possibilité de préciser quelques informations, dont :
  • le nom du fichier exécutable
  • l'icône qui représentera cet exécutable (en choisir une jolie plutôt que laisser l'immonde rectangle par défaut)
  • le type de compilation qui va être utilisé. Sans entrer dans les détails techniques, il est préférable de choisir l'option Release dans la Configuration de solutions : l'exécutable créé sera optimisé, donc moins encombrant.
 
2. Créer un programme d'installation
Tout cela est bien beau, mais pour peu que le projet soit un peu joufflu, cela risque fort de ne pas répondre à tous nos problèmes. Rappelons-nous ce que nous avons vu deux chapitres plus haut, à propos des images, des vidéos, des sons ou des fichiers de données (voire des fichiers de polices de caractères, et bien d'autres choses encore...) utilisés par notre application : nous ne pouvons - ou ne devons - pas les intégrer à l'exécutable, et nous devons nous assurer que sur toute machine où se fera l'installation, ils seront bien rangés dans le répertoire où le code ira les chercher.
Cela ne peut se faire qu'en créant non seulement un simple exécutable, mais aussi un véritable programme d'installation, comprenant également tous ces fichiers annexes et les informations sur l'emplacement où ils devront être installés. Fort heureusement, Visual Studio nous fournit gracieusement l'outil adéquat pour confectionner un joli paquet-cadeau.
Remarque :
La première condition pour que votre exécutable tourne sur une machine, c'est que le Framework .Net y soit installé. Mais cela, ce n'est pas à vous de vous en préoccuper. En l'absence de ce Framework, le programme d'installation refusera de s'exécuter et enverra un message circonstancié à l'utilisateur afin qu'il le télécharge.
Reprenons.
Pour créer un programme d'installation, il faut Ajouter un nouveau projet au sein de la solution contenant le projet que vous voulez déployer. Mais ce projet sera d'un genre particulier : il faut préciser qu'il s'agit d'un Projet de configuration (on pourra, selon les cas, lui préférer éventuellement l'assistant, qui aboutit à des résultats à peu près comparables).
Ensuite, nous nous retrouvons illico dans la fenêtre Système de fichiers. Il s'agit d'un explorateur en deux volets, qui figure la machine de destination de notre application :
Dans le volet de droite, nous pouvons à présent poser les fichiers de notre choix, en sélectionnant au fur et à mesure dans le volet de gauche les répertoires de notre choix (on remarque qu'un des répertoires proposés est précisément le répertoire dans lequel sera installé l'exécutable - rien de plus facile, donc, que de créer des sous-répertoires et d'y mettre ce qu'on veut). Il y a également moyen de prévoir quelques opérations un peu particulières, comme poser un raccourci sur le bureau, voire associer certaines extensions avec notre application (mais là, ça commence à devenir un peu pointu pour le niveau où nous en sommes).
A noter que si dans le volet de gauche, trois répertoires de la machine-cible sont proposés par défaut, on peut en rajouter toute une série, qui couvrent les besoins les plus évidents.
Par ailleurs, les propriétés du projet de configuration permettent de préciser plusieurs choses, dont le nom qui apparaîtra publiquement comme celui de notre application.
Je signale pour mémoire la fenêtre Interface utilisateur, qui possède également son importance : c'est là que nous pouvons paramétrer en partie les boîtes de dialogue qui s'afficheront lors de l'installation, en ajoutant quelques commentaires, en modifiant l'ordre et le contenu des questions, etc. même si des modifications un peu importantes réclament un doigté et des connaissances que nous n'aborderons pas ici.
Au bout du bout du compte, lorsque tout est bien paramétré, qu'on est fin prêt, on peut y aller : il faut alors compiler (générer) le projet de configuration d'installation lui-même. On se retrouve alors avec différents fichiers, dont la plupart n'ont comme rôle que de contenir des informations de déboguage. Un seul compte pour nous : le setup.msi, c'est-à-dire l'installateur de notre beau projet.
Ben voilà, on a fait le tour de la question.