III. Création d'un setup d'installation▲
Le chapitre suivant va expliquer comment créer un setup pour installer notre petite application sur un PC client.
III-A. Création du projet ▲
Dans Visual Studio 2010, sélectionner le menu Fichier>Nouveau>Projet :
Pour l'exemple, nous donnerons comme nom à ce projet ComTutorielSetup
Nous obtenons donc un projet vierge :
Nous pouvons observer dans la fenêtre Système de fichiers trois dossiers de base :
- bureau de l'utilisateur : permet de définir les éléments qui seront accessibles depuis le bureau de l'utilisateur ;
- dossier d'application : permet de définir les éléments qui seront dans le dossier de l'application, donc généralement un sous-dossier du dossier Program files ;
- menu Programmes de l'utilisateur : permet de définir les éléments qui seront placés dans le menu programmes pour l'utilisateur.
III-B. Préparation du dossier d'application▲
Dans la fenêtre Système de fichiers, sélectionnez le dossier d'application. Ensuite cliquer sur le bouton droit de la souris, et dans le menu contextuel qui apparaît, sélectionnez Ajouter > Assembly. La fenêtre suivante apparaît :
L'onglet Parcourir va nous permettre d'aller sélectionner la DLL ComTutoriel.dll compilée par notre projet .net.
Dans la capture d'écran suivante, nous retrouvons notre DLL et son fichier .tlb nécessaire au bon fonctionnement de notre application :
III-C. Définir les propriétés pour la DLL ComTutoriel▲
Nous sélectionnons ComTutorirel.dlldans la liste et observons les propriétés :
Pour la propriété Register, nous sélectionnons vsdraCOM qui indique au processus d'installation qu'il faudra inscrire notre assembly lors de l'installation.
III-D. Ajout de l'exécutable client VB6▲
De la même manière que nous avons ajouté notre assembly au point précédent, nous sélectionnons le dossier Dossier d'application et via le menu contextuel, nous sélectionnons Ajouter>Fichier. Une boîte de sélection de fichier va nous permettre de sélectionner l'exécutable compilé en VB6.
Nous avons maintenant un aperçu du contenu du répertoire application de l'ordinateur cible.
III-E. L'ajout des dépendances▲
Comme beaucoup d'applications, aussi bien notre assembly que notre client VB6 ont certaines dépendances. Dans le cas de l'assembly .net, les dépendances ont été ajoutées automatiquement lors de l'ajout de celui-ci dans le dossier de l'application.
Comme nous pouvons l'observer dans la capture d'écran suivante, notre assembly .net a besoin non seulement de son fichier .tlb (créé lors de la compilation du projet .net) mais également du FrameWork .net (dans notre cas, le FrameWork 4.0) :
Si nous double cliquons sur l'entrée Microsoft .Net Framework , nous pouvons voir la configuration requise pour l'ordinateur cible, comme le montre la capture suivante :
Nous pouvons observer que le .net Framework se trouve comme condition de lancement. C'est-à-dire que sa présence est obligatoire pour la bonne exécution de notre programme. Le fait d'avoir ajouté l'assembly .net a créé automatiquement cette condition.
Si nous sélectionnons l'entrée .Net Framework, nous pouvons voir qu'elle possède certaines propriétés :
La propriété InstallUrl permet de spécifier l'URL de téléchargement du FrameWork en cas d'absence sur l'ordinateur cible. Nous voyons que nous pouvons aussi sélectionner la version de celui-ci. Cela signifie que si l'ordinateur cible n'a pas cette version du FrameWork installée, le setup nous demandera pour faire l'installation de celui-ci automatiquement.
Une autre dépendance est également vitale au bon fonctionnement de notre application, mais dans ce cas-ci pour le client VB6 : VB6FR.dll
Cette DLL est nécessaire pour les exécutables VB6 compilés en langue française (ce qui permet entre autre l'affichage des messages d'erreurs en français) ainsi que la DLL MSVBVM60.DLL. Ces deux DLLs doivent être présentes dans le même dossier (Windows\Sytem32). Depuis Windows 2000, MSVBVM60.DLL est automatiquement dans ce dossier, ce qui n'est pas toujours le cas pour VB6FR.dll.Nous allons donc par sécurité ajouter celle-ci à notre setup.
Pour ce faire, nous retournons dans l'onglet Système de fichier et nous affichons le menu contextuel. Nous choisissons le menu Ajouter un dossier spécial et nous sélectionnons Dossier System dans la liste proposée :
De la même manière avec laquelle nous avons sélectionné notre exécutable tout à l'heure, nous y ajoutons notre DLL VB6FR.dll(Il est possible d'ajouter cette DLL via un glisser/copier à partir de l'explorateur Windows). Nous obtenons donc un dossier système contenant notre DLL comme le montre la capture suivante :
Pour rappel cette DLL sera copiée dans le répertoire Windows/System32 de l'ordinateur cible.
III-F. Définition du menu de l'utilisateur▲
Nous allons maintenant définir la manière dont notre application apparaîtra dans le menu utilisateur sur l'ordinateur cible. Pour cela nous revenons à notre fenêtre nous montrant le système de fichier de l'ordinateur cible. Sous le dossier Menu Programmes de l'utilisateur, nous définissons un sous menu Infosam et nous créons un raccourci vers notre fichier ComClient.exe se trouvant dans le dossier Dossier d'application.
III-G. Propriétés de notre setup▲
Pour terminer, il nous reste à définir les propriétés de notre setup comme l'auteur, la société, etc. Via le menu Affichage>Fenêtre de propriétés. Nous obtenons la fenêtre correspondante à la capture suivante : Pour notre exemple nous avons modifié les propriétés suivantes :
- Author ;
- Manufacturer ;
- ProductName ;
- Title.
Nous notons également que la propriété TargetPlatform est définie à X86 qui est le type du processeur de notre PC de test.
III-H. Compilation de notre setup▲
Nous allons maintenant compiler notre setup via la méthode habituelle. Donc nous sélectionnons dans le menu Générer le sous-menu Générer la solution.
Si aucune erreur ne se produit, nous obtenons après génération de la solution deux fichiers :
- Setup.exe ;
- ComTutorielSetup.msi.
Ce sont ces fichiers qui nous permettrons d'installer notre programme sur un PC client.
IV. Installation sur un PC client▲
Nous allons maintenant exécuter notre setup sur un PC client muni d'un processeur x86 (en fait sur une machine virtuelle) et de Windows 7 édition familial. Le FrameWork .net 4.0 ne se trouve pas sur cette machine.
IV-A. Copie du fichier setup.exe▲
Après copie du fichier setup.exe sur l'ordinateur cible, nous lançons celui-ci. Nous obtenons donc la fenêtre suivante :
Cette fenêtre nous indique bien l'absence du Framework 4 et nous proposes de l'installer après acceptation de la licence. Nous cliquons donc sur le bouton Accepter et l'installation du Framework se lance automatiquement (le setup télécharge l'installation du Framework à l'URL spécifiée dans le projet du setup). L'installation de celui-ci prend un certain temps :
IV-B. Début de l'installation de notre petit logiciel▲
L'installation du Framework terminée, le setup de notre application se lance automatiquement :
L'installation se présente sous forme d'un Wizard d'installation tout à fait courant pour toute application sous Windows. Nous ne détaillerons pas toutes les étapes de celui-ci, mais voici néanmoins quelques captures d'écran :
À ce stade notre application est installée.
IV-C. Lancement de notre application installée▲
Nous pouvons maintenant lancer notre application par le point de menu qui a été créé et constater que celle-ci fonctionne correctement.
Voilà donc la fin de ce tutoriel. Cette méthode peut-être intéressante dans le cas d'une application en VB6 que l'on doit migrer vers le .Net. Cela permettrait de réécrire l'application progressivement ou d'ajouter de nouvelles fonctionnalités en .net sans devoir les réécrire dans la version finale.
Des informations complémentaires sur l'interopérabilité sont disponibles sur le site du MSDN à l'URL suivante :
http://msdn.microsoft.com/fr-fr/library/ms172270%28v=vs.90%29.aspx
Je tiens à remercier zoom61 pour son aide lors de la relecture orthographique de cet article.