none
.NET DLL enregistrée mais non reconnue

    General discussion

  • Bonjour,

    Je m'adresse à vous suite à un problème que j'ai en ce moment.

    Je créé une DLL "ComVisible", dont la plupart de mes classes commencent par :

    [ComVisible(true)]
    [Guid("A46A311D-CC87-43CF-9D60-A8B133058F5A")]

    Avec un GUID différent pour chacune d'elles. Une de mes classes est un UserControl que j'utilise pour l'affichage. J'ai déjà réussi à la faire fonctionner sur un poste qui est exactement le même. Meme configuration, même Windows (10), même update, tout.

    Je l'enregistre avec RegAsm avec les options /codebase et /tlb. Et c'est là que ça pèche.

    Sur mes 8 classes, seules 4 classes sont enregistrées (le reste l'est aussi). Tout est bien sauvegardé quand je regarde dans le RegEdit mais Excel (par exemple) ne voit pas mon UserControl lorsque je cherche à ajouter un contrôle ActiveX et mon logiciel FactoryTalk View de même. Cela fonctionne sur le premier poste de test, mais pas sur celui-ci.

    J'ai fait la même procédure tout le long (comme pour le test) :

    - Je met la DLL sur le Bureau
    - Je lance le PowerShell en admin puis sur C:\Users\XXXX\Desktop
    - lance la commande suivante : ."C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe" MonGraf.dll /codebase /tlb /verbose
    - et j'obtiens "Inscription des types réussis ; L'assembly a été exporté vers [...] et la bibliothèque de types a été inscrite avec succès" avec mes différentes classes exportées.
    - Je lance Excel -> Développeur -> Insérer -> Autres contrôles (Pour FTView, je passe par le bouton CTRL ActiveX)
    - Et là je ne vois pas mon UserControl alors que sur l'autre poste, je le voyait avec la même procédure.

    Entre l'installation des deux postes j'ai changé les GUID de mes classes et de mon assembly. Rien d'autre.

    Qu'est-ce qui peut expliquer ce problème ? Je n'ai pas de résidus de mes anciens ajouts, je fais bien les désinscriptions avec le /u de RegAsm...

    Cordialement,

    Julien G

    Monday, February 4, 2019 3:13 PM

All replies

  • Bonjour Julien G,

    De quel type est cet Add-in - COM, VSTO ou Excel Add-in?
    Est-ce que les versions d'Excel sont les mêmes sur les deux ordinateurs?
    Essayez d'ajouter cet Add-in avec les instructions suivantes:

    • Cliquez sur Fichier > Options > Compléments.
    • Sélectionnez un type de complément.
    • Cliquez sur Ok.
    • Sélectionnez les compléments à ajouter, supprimer, charger ou télécharger. Ou recherchez l’emplacement des compléments à installer.

    J'ai aperçu dans l'article suivant une recommandation pour l'utilisation des contrôles ActiveX - "Les développeurs ne doivent pas utiliser les contrôles ActiveX dans les compléments Office car les contrôles ActiveX ne prennent pas en charge la nature multiplateforme de la plateforme du complément.":
    https://docs.microsoft.com/fr-fr/office/dev/add-ins/concepts/privacy-and-security

    Cordialement, 
    Nina


    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    Tuesday, February 5, 2019 1:01 PM
    Moderator
  • Bonjour,

    Merci pour votre réponse.

    Alors c'est un objet COM créé comme UserControl (dans une Bibliothèque de classes)

    Apparemment je n'arrive pas à l'ajouter en tant que complément Excel. J'arrive par contre à l'utiliser dans les UserForm du VBA éditeur en l'ajoutant via le menu Outils -> Contrôles supplémentaires (et il apparait dans la liste). Mais je ne le vois toujours pas sur d'autres logiciels comme FT VIEW. J'ai essayé sur un Win7, cela fonctionne (avec le RegAsm).

    Mais sur Win10, pas moyen de le voir. Est-ce que mes différents tests auraient pu abimer mes registres ? Comment faire un ménage clair et complet pour m'assurer que le problème ne vient pas de là ?

    EDIT : J'ai fais un /u qui a supprimé toutes les occurrences de mes classes dans le registres, niquel. Mais est-ce suffisant ?

    Avez vous d'autres idées possibles ?

    Cordialement,

    Julien G


    Tuesday, February 5, 2019 1:50 PM