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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[C#] Comment deployer un COM Interop ?


Sujet :

C#

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 80
    Points : 60
    Points
    60
    Par défaut [C#] Comment deployer un COM Interop ?
    Bonsoir !

    Voilà j'ai généré une dll avec Visual studio .Net dans le but de l'utiliser par la suite dans un projet VB6.
    VS.NEt me compile bien ma dll avec le .TLB qui va avec et puis ensuite quand je l'utilise dans mon projet VB6 ca marche nickel , il trouve bien les fonctions etc ..
    Maintenant mon problème c'est que il n'y a QUE sur ma machine que ca marche comme ca ! C'est à dire que ma dll et mon tlb ne sont utilisables que sur un projet VB6 sur ma machine.
    Si j'essaye de l'utiliser avec un projet VB6 sur la machine de mon collègue ca ne marche pas : il n'arrive pas à m'instancier mon objet !!

    J'ai essayé d'enregistrer mon assembly .NET avec RegAsm.exe mais rien n'y fait ...

    Quelqu'un a une idée ? Merc i!

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Dans les propriétés de ton projet pour les paramètres de configuration du Build il y a une case à cocher Inscrire pour COM Interop
    voir > Création d'objets COM sans le modèle de classe COM

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 80
    Points : 60
    Points
    60
    Par défaut
    merci de ta réponse !
    En effet, je l'ai déja fait et ca marche nickel mais QUE sur ma machine !!
    Des que je change de machine ca ne s'instancie plus et ca merde et je ne sais pas pourquoi ...

    Merci

  4. #4
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Et comment tu procedes pour l'installer sur d'autres machines :

  5. #5
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 80
    Points : 60
    Points
    60
    Par défaut
    neguib >> pour l'installer sur mon autre machine ,je récupere ma DLL et la TLB qui va avec et je rajoute dans mon projet VB6 une référence vers mon TLB. Dans l'explorateur d'objet, y a pas de soucis, j'ai bien mes fonctions ainsi que mes propriétés.C'est au lancement que les problemes apparaissent car quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set monObjet = New MaDll.MaClasse
    et ben ca il veut pas , il me dit qu'il arrive pas a instancier la classe.
    Voilà en gros ...

    NicolasG >> si c'est une blague alors Sinon si t'es sérieux et ben, évidemment qu'il faiut installler le framework avant ...

  6. #6
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par loverdose
    ...pour l'installer sur mon autre machine , je récupere ma DLL et la TLB qui va avec et je rajoute dans mon projet VB6 une référence vers mon TLB...
    Connaissant les surprises Visual Studio , veux-tu dire que tu as:
    1. Fait un projet de deploiement -configuration (.msi), qui prendras bien en compte toutes les dependances de ta dll, et verifie la version correcte presente du Framework sur la nouvelle machine.
    2. ta dll bien dans la liste des COM lors de l'ajout en reference, donc correctement enregistré en tant que COM sur la nouvelle machine

    et ben ca il veut pas , il me dit qu'il arrive pas a instancier la classe.
    Voilà en gros ...
    Je prefererai que tu mettes le message d'exception exact généré par le compilateur vb6, car nous allons peut être nous apercevoir que ta question doit être redirigée vers le Forum dedié VB6

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2009
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Hello,

    désolé de déterrer ce post, mais as tu trouver une solution à ton problème ? J'en suis au même point avec un projet VBa et un library DLL .NET qui fonctionne en local mais pas sur un autre PC.

    Merci de ta réponse

  8. #8
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 493
    Points
    5 493
    Par défaut
    Bonjour, as-tu essayé de l'enregistrer sur la machine cible ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    regsvr32 MaBiblioCOM.dll

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2009
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Hello,

    Si je ne me trompe pas, regsvr32 est pour les dll COM, alors ma dll est .NET avec "l'option" Inscrire pour COM interop.

    Bon dans le doute, j'ai tester, mais ca ne fonctionne pas (dll non compatible)

    Le problème est que j'ai visual C# express qui ne permet pas de faire des projets d'installation (qui je pense résoudrait le problème), donc je cherche comment installer cette dll manuellement sur un autre PC.

    Merci pour votre aide

  10. #10
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 493
    Points
    5 493
    Par défaut
    Oups, oui, désolé, c'est le second commentaire qui m'avait laissé pensé ça après une lecture trop rapide.
    Bon ben, du coup, je sèche. A part les habituels "s'assurer de la version du framework installée", "distribuer la version release", "vérifier les dépendances", etc...

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2009
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Alors je progresse un peu.

    Il semble qu'il y aurait un regasm.exe pour enregistrer les dll .NET, mais impossible de le trouver dans ma VM windows seven...

    Concernant ton précédent post :
    la dll utilise le framework 3.5
    c'est un helloword pour le moment donc aucune dépendance autre que le framework.
    J'ai bien copier la release.

    La machine de déploiement est une machine virtuelle avec windows 7 x86 (donc framework 3.5 SP1 en natif si je ne me trompe pas, mais visiblement sans regasm.exe...)

    Voilà, si vous avez des idées

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2009
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Je progresse encore un peu

    J'ai trouvé regasm (dans le dossier du framework 2.0)

    J'ai donc réussi à inscrire ma dll avec succès

    Mais :
    - chose etrange, je ne trouve pas ma dll dans les références vba, il faut l'ajouter manuellement comme précédemment
    - lors que je run mon projet j'ai l'erreur suivant lors de la création de l'instance de la classe de ma dll :
    Erreur d'éxécution -2147024894 (80070002)
    Erreur automation
    Le fichier spécifié est introuvable
    Evidement, je ne spécifie aucun fichier et il n'y a aucune fichier a spécifier dans ma classe puisqu'il s'agit d'un simple helloword...

    Si vous avez des avis

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2009
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Solutions trouvée !!!

    etape 1 : copie de la dll
    Copier le fichier dll sur le PC de déploiement
    etape 2 : inscription de la dll
    Ouvrir une ligne de commande et aller dans le dossier contenant la dll
    exécuter : c:\windows\Microsoft.NET\Framwork\v2.0.5027\regasm.exe madll.dll /t /codebase
    regasm vous inscris la dll ET vous créé un fichier madll.tlb
    etape 3 : dans vb6/vba aller dans référence et faire parcourir, puis ajouter le fichier tlb précédent.

    Et ca devrait marcher !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 30/03/2006, 16h15
  2. [phpBB] Comment deployer un forum PHP comme celui-ci ?
    Par zev dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 17
    Dernier message: 09/11/2005, 13h32
  3. Réponses: 14
    Dernier message: 15/06/2005, 20h27
  4. Comment utiliser Developpez.com pour résoudre votre problème
    Par Anomaly dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 0
    Dernier message: 08/01/2005, 12h11
  5. comment deployer un programme fait avec jbuilder
    Par showmetheway dans le forum JBuilder
    Réponses: 6
    Dernier message: 23/09/2003, 02h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo