Comment déployer un COM
-
22-07-2019 - |
Question
Je viens de terminer la construction de mon nouveau projet COM (C #, .NET 3.5). Ce projet sera appelé par une application VFP. Cela fonctionne très bien sur ma machine de développement, mais je dois maintenant savoir comment le déployer sur la machine de l'utilisateur. Click Once n'est pas disponible pour ce type de projet, je suppose donc que je suis coincé avec la distribution manuelle de la DLL.
Alors, où dois-je placer la DLL et comment l'enregistrer?
BTW, le framework 3.5 est déjà installé sur la machine de l'utilisateur.
TIA
La solution
Je n'ai vraiment jamais utilisé RegSvr32 avec les assemblys .Net, mais plutôt le régasm avec l'option / codebase:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe /codebase mydll.dll
Vous pouvez également utiliser l'option / tlb pour exporter et enregistrer la bibliothèque de types.
Bien sûr, le moyen le plus simple consiste à créer un programme d’installation avec vstudio, qui le fera pour vous.
Autres conseils
Création d'une description de la classe et des interfaces COM
Les assemblys .Net n'incluent pas d'informations au format compatible avec la bibliothèque de types. Il est donc nécessaire que le programmeur exécute l'un des deux utilitaires fournis par .Net pour extraire la description de l'assembly d'une classe dans un fichier de bibliothèque de types.
Un utilitaire est TLBEXP.EXE, l’exportateur de bibliothèques de types .Net. Cet utilitaire de ligne de commande prend en entrée le nom d'un fichier DLL d'assembly à convertir en bibliothèque de types. Le programmeur peut également spécifier le nom du fichier de bibliothèque de types à créer.
tlbexp ComServer.dll /out:ComServer.tlb
Assembly exported to C:\Magellan\Source\Output\Debug\ComServer.tlb
Une fois qu'une bibliothèque de types a été créée, elle peut être référencée par un client COM pour obtenir les informations nécessaires pour que le client COM puisse se lier aux interfaces de la classe COM et activer la classe COM au moment de l'exécution.
Enregistrement de la classe et des interfaces COM
Pour qu'une classe COM soit accessible par le client au moment de l'exécution, l'infrastructure COM doit savoir comment localiser le code qui implémente la classe COM. La commande suivante accomplit ceci:
regasm ComServer.dll
Votre DLL peut être placée n'importe où, mais C: \ Program Files \ MyApplication est un bon choix.