Click here to Skip to main content
15,886,774 members
Home / Discussions / .NET (Core and Framework)
   

.NET (Core and Framework)

 
GeneralRe: ListView move Up / Down using Index ?? Pin
Anonymous27-Oct-04 7:23
Anonymous27-Oct-04 7:23 
GeneralNT User Login propagate on Remoting Pin
amatyasik25-Oct-04 3:05
amatyasik25-Oct-04 3:05 
GeneralRe: NT User Login propagate on Remoting Pin
Alex Korchemniy25-Oct-04 11:39
Alex Korchemniy25-Oct-04 11:39 
GeneralRe: NT User Login propagate on Remoting Pin
amatyasik25-Oct-04 21:09
amatyasik25-Oct-04 21:09 
GeneralDistributing Dlls written in .Net to VB6 Pin
Fade (Amit BS)24-Oct-04 19:26
Fade (Amit BS)24-Oct-04 19:26 
GeneralRe: Distributing Dlls written in .Net to VB6 Pin
Alex Korchemniy25-Oct-04 11:33
Alex Korchemniy25-Oct-04 11:33 
GeneralRe: Distributing Dlls written in .Net to VB6 Pin
Fade (Amit BS)25-Oct-04 19:19
Fade (Amit BS)25-Oct-04 19:19 
GeneralRe: Distributing Dlls written in .Net to VB6 Pin
Trankil26-Oct-04 1:19
Trankil26-Oct-04 1:19 
hi !

I have a solution, but it is in French and I don't have time to translate it in English

Here it is :


Créer et utiliser un composant COM à partir de .NET

.NET est fabuleux, c'est un fait! Cependant lorsque vient le moment d'effleurer la
création d'objets COM, la technique peut paraître complexe pour plusieurs d'entre nous. Ce
mois-ci, je vais tenter de vous introduire à la création de composants COM via .NET en
relatant une problématique tirée d'une situation concrète à laquelle je fais face en ce moment.

La problématique en quelques mots est que nous avons une application ASP 3.0 vieille de 3 ans qui communique avec un composant COM développé en VB6 et hébergé sous Microsoft Transaction Server (MTS). Pour une raison obscure, notre composant COM VB6 arrête maintenant de fonctionner de façon aléatoire, sans avertissements et sans aucune information pertinente et du même coup tous nos usagers sont affectés. Le facteur temps est important dans la résolution de ce problème puisque nos usagers sont affectés. Alors, après plusieurs recherches et diagnostiques, nous en sommes venus à la conclusion où la seule alternative viable est de recréer notre composant COM en VB.NET afin de nous offrir une plus grand stabilité et une flexibilité de diagnostique accrue. Voici donc les étapes que j'ai suivi pour développer le composant COM en question sous VB.NET dans Visual Studio.NET.

Étape 1 - Création de l'application

1. Créez un nouveau projet de type "Class Library"
2. Effacez la classe class1.vb
3. Ajoutez une nouvelle classe de type "COM Class"
4. Ajoutez une ou plusieurs fonctions à cette classe

Étape 2 - Construction (build) du composant COM

Pour que .NET puisse construire un COM, vous devez ajouter un "strong name" à votre projet.

1. Ouvrez une session DOS via le raccourci "Visual Studio .NET Command Prompt"
2. À l'invité DOS, tapez "sn -k le_nom_de_votre_projet.snk"
3. Ajoutez le fichier nouvellement créé "le_nom_de_votre_projet.snk" dans le répertoire \obj\Debug (ou \obj\Release, selon le mode de votre projet)
4. Éditez le fichier AssemblyInfo.vb pour y ajouter une référence au fichier .snk nouvellement créé en ajoutant l'attribut suivant:
* <assembly: assemblykeyfile("le_nom_de_votre_projet.snk")="">
5. Sauvegardez les changements et construisez (build) votre projet

Étape 3 - Enregistrement du composant COM

Traditionnellement, les composants COM étaient enregistrées avec l'utilitaire regsvr32.exe mais comme .NET ne construit pas tout à fait un composant COM traditionnel, mais plutôt un emballage (wrapper) qui permet d'émuler un composant COM, il faut donc l'enregistrer différemment.

1. Après la construction de votre projet, deux fichiers seront créés dans le répertoire /bin de votre projet; Un fichier avec l'extension .dll et un fichier avec l'extension .tlb, copiez ces 2 fichiers sur l'ordinateur où vous désirez les utiliser (le fichier avec l'extension .pdb, (si en mode debug) n'est pas requis)
2. Toujours à l'invité de votre fenêtre DOS "Visual Studio .NET Command Prompt", tapez les commandes suivantes (voir le point 1 de l'étape 2 si elle n'est pas ouverte):
* Enregistrez votre assembly (.dll):
regasm votredll.dll
* Ajoutez une référence à votre assembly (.dll) dans le Global Assembly Cache (GAC):
gacutil -i votredll.dll

Et voilà! Votre premier composant COM sous .NET est maintenant prête à être utilisée.

Un peu plus...
Il peut s'avérer très utile de retirer l'enregistrement de votre composant COM pour en enregistrer une nouvelle version par exemple, voici donc comment:

* Retirez la référence à votre dll du GAC:
gacutil -u votredll (sans extension!!!)
* Retirez l'enregistrement de votre dll:
regasm -u votredll.dll


That's all

Good luck !
GeneralApplets Pin
Srikanth I.24-Oct-04 10:29
Srikanth I.24-Oct-04 10:29 
GeneralRe: Applets Pin
Steven Campbell24-Oct-04 10:43
Steven Campbell24-Oct-04 10:43 
QuestionTcpClient create a memory leak ?!? Pin
Alon Ronen23-Oct-04 5:57
Alon Ronen23-Oct-04 5:57 
AnswerRe: TcpClient create a memory leak ?!? Pin
Fade (Amit BS)25-Oct-04 19:34
Fade (Amit BS)25-Oct-04 19:34 
GeneralSearching for a type in a solution Pin
Dmitriy Shilonosov22-Oct-04 22:13
Dmitriy Shilonosov22-Oct-04 22:13 
GeneralRe: Searching for a type in a solution Pin
Alex Korchemniy25-Oct-04 11:23
Alex Korchemniy25-Oct-04 11:23 
GeneralGroup box text will not display an Ampersand Pin
Tony D. Abel22-Oct-04 13:37
Tony D. Abel22-Oct-04 13:37 
GeneralRe: Group box text will not display an Ampersand Pin
Luis Alonso Ramos22-Oct-04 22:47
Luis Alonso Ramos22-Oct-04 22:47 
GeneralRe: Group box text will not display an Ampersand Pin
Anonymous23-Oct-04 2:43
Anonymous23-Oct-04 2:43 
GeneralUser Control Embedded in IE Pin
Anonymous22-Oct-04 3:50
Anonymous22-Oct-04 3:50 
GeneralRe: User Control Embedded in IE Pin
Frank Hileman25-Oct-04 5:44
Frank Hileman25-Oct-04 5:44 
GeneralOpen a form on socket receive Pin
Gian21-Oct-04 23:18
Gian21-Oct-04 23:18 
GeneralRe: Open a form on socket receive Pin
Fade (Amit BS)25-Oct-04 19:50
Fade (Amit BS)25-Oct-04 19:50 
QuestionLocal time for arbitrary location? Pin
UgN21-Oct-04 23:03
UgN21-Oct-04 23:03 
GeneralTransparent Controls (Compact Framework) Pin
Vinnepin21-Oct-04 13:04
Vinnepin21-Oct-04 13:04 
GeneralRe: Transparent Controls (Compact Framework) Pin
Alex Korchemniy25-Oct-04 11:18
Alex Korchemniy25-Oct-04 11:18 
Generaldeploying .net dll for com access Pin
Verdant12321-Oct-04 9:57
Verdant12321-Oct-04 9:57 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.