IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Création d'un composant COM pour l'appel d'objet .net à partir de VB6


précédentsommaire

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 :

Image non disponible

Pour l'exemple, nous donnerons comme nom à ce projet ComTutorielSetup

Nous obtenons donc un projet vierge :

Image non disponible

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 :

Image non disponible

L'onglet Parcourir va nous permettre d'aller sélectionner la DLL ComTutoriel.dll compilée par notre projet .net.

Image non disponible

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.

Image non disponible

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.

Image non disponible

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) :

Image non disponible

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 :

Image non disponible

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 :

Image non disponible

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 :

Image non disponible

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 :

Image non disponible

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.

Image non disponible

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 :

Image non disponible
  • 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 :

Image non disponible

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 :

Image non disponible

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 :

Image non disponible

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 :

Image non disponible
Image non disponible
Image non disponible

À 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.

Image non disponible
Image non disponible

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.


précédentsommaire

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2013 Metz Eric (Infosam76). Aucune reproduction, même partielle, ne peut être faite de ce site ni 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.