OVH Cloud OVH Cloud

regasm, gacutil et AssemblyKeyFile

6 réponses
Avatar
Michael Moreno
Bonjour,

J'essaie de creer une classe .Net simple et de l'enregistrer comme un
COM.
J'ai beau avoir un livre sous les yeux, depuis 2 h j'y arrive pas !
Sauriez-vous ou il y a un tutorial svp ? Pas la MSDN... Je l'ai lu 10
fois et j'y comprends rien car elle ne contient pas d'exemple.

Ce que j'arrive a faire:

J'arrive a utiliser regasm avec /tlb et a enregistrer le COM (sans
strong key). Mais quand j'ouvre VBA il me reconnait la classe mais il
ne connait aucune methode de la classe. Je crois comprendre que pour
resoudre ce probleme, il faut enregistrer la DLL dans le GAC. Pour ce
faire j'ai utilise "sn" et j'ai cree un fichier MyFirstCOM.snk. Dans le
fichier AssemblyInfo.cs, j'ai bien mis :[assembly:
AssemblyKeyFile("MyFirstCOM.snk")]

Le tout compile bien.

--
----
http://michael.moreno.free.fr/

6 réponses

Avatar
Ambassadeur Kosh
tu veux faire un COM ou un assembly DotNet ?
ton appli client, c'est quoi ?
si c'est une appli dotnet, pourquoi vouloir faire un COM ?
Avatar
Michael Moreno
Je ne suis pas sur d'avoir ete suffisamment clair.

J'ai cree la cle avec sn
J'ai compile en liant la DLL avec la cle
J'ai enregistre dans le GAC
J'ai execute regasm

Pourtant sous Excel, seule le nom de la classe apparait, aucune methode
n'est apparemment disponible.

Auriez-vous une idee ou un tutorial sur la question svp ?

Merci

Michael

--
----
http://michael.moreno.free.fr/
Avatar
Michael Moreno
Bonjour,

tu veux faire un COM ou un assembly DotNet ?



Je souhaite faire un COM ecrit en C#.

ton appli client, c'est quoi ?



Une appli client/Serveur assez grosse developpee a l'aide de COM

si c'est une appli dotnet, pourquoi vouloir faire un COM ?



C'est une appli COM pour laquelle on teste la possibilite de creer les
nouveaux COM en .Net pour eviter d'avoir a les ecrire dans un language
pour Win32 et d'avoir a les reecrire sous .Net d'ici 3 ans.

--
----
http://michael.moreno.free.fr/
Avatar
Ambassadeur Kosh
je peux pas t'aider la dessus.
désolé
Avatar
Paul Bacelar
Vous confondez GAC et base de registre.

Si Excel voit votre objet, c'est que l'assembly est correctement enregistré
dans la base de registre.

Si vous n'avez pas de méthode, c'est que votre objet .NET de publie pas les
interfaces COM qu'il supporte et que Excel peut interpréter.

Regardez du côté de [ClassInterface(ClassInterfaceType.AutoDispach)].

Jetez un coup d'oeil à la base de registre pour voir les autres anomalies
qui empêcherait l'instanciation de votre composant COM.
--
Paul Bacelar


"Michael Moreno" wrote in message
news:
Je ne suis pas sur d'avoir ete suffisamment clair.

J'ai cree la cle avec sn
J'ai compile en liant la DLL avec la cle
J'ai enregistre dans le GAC
J'ai execute regasm

Pourtant sous Excel, seule le nom de la classe apparait, aucune methode
n'est apparemment disponible.

Auriez-vous une idee ou un tutorial sur la question svp ?

Merci

Michael

--
----
http://michael.moreno.free.fr/



Avatar
Mitsuru FURUTA [Ms]
Bonjour,

J'ai tenté d'expliquer un peu tout cela au travers d'un article qui pourra
surement vous éclairer.

http://www.techheadbrothers.com/DesktopDefault.aspx?tabindex=1&tabid=7&AIdt

Bonne continuation,

Mitsuru FURUTA [Microsoft FRANCE]

"Michael Moreno" wrote in message
news:
Bonjour,

J'essaie de creer une classe .Net simple et de l'enregistrer comme un
COM.
J'ai beau avoir un livre sous les yeux, depuis 2 h j'y arrive pas !
Sauriez-vous ou il y a un tutorial svp ? Pas la MSDN... Je l'ai lu 10
fois et j'y comprends rien car elle ne contient pas d'exemple.

Ce que j'arrive a faire:

J'arrive a utiliser regasm avec /tlb et a enregistrer le COM (sans
strong key). Mais quand j'ouvre VBA il me reconnait la classe mais il
ne connait aucune methode de la classe. Je crois comprendre que pour
resoudre ce probleme, il faut enregistrer la DLL dans le GAC. Pour ce
faire j'ai utilise "sn" et j'ai cree un fichier MyFirstCOM.snk. Dans le
fichier AssemblyInfo.cs, j'ai bien mis :[assembly:
AssemblyKeyFile("MyFirstCOM.snk")]

Le tout compile bien.

--
----
http://michael.moreno.free.fr/