2011-02-27 6 views
2

J'ai besoin de distribuer plusieurs anciennes applications COM qui doivent être installées sur des ordinateurs verrouillés. J'essaie de lancer ces applications sans avoir à être enregistré dans le registre via regsvr32 ou dans le cas d'un composant EXE via le commutateur/regserver. Je peux contrôler et copier localement toutes les dépendances requises dans ce scénario.Comment configurer les composants COM sans enregistrement

Je sais que c'est possible, mais j'ai vraiment du mal à reconstituer les différentes pièces ou à trouver des informations cohérentes sur la façon de le configurer.

Toute aide ou pointeur serait grandement appréciée.

+0

L'activation sans reg des serveurs hors processus (EXE) n'est pas prise en charge. –

Répondre

2

Microsoft a un bon tutoriel sur Registration Free COM.

Il existe deux parties de base pour obtenir un fonctionnement COM sans enregistrement. D'abord, vous devez convertir les dlls COM en assebmly: juste les dll COM, et créez un manifeste les décrivant, et donnez-lui un nom. Regroupez cet assembly dans le même dossier que votre application.

Ensuite, vous devez indiquer à votre application d'utiliser l'assemblage que vous venez de créer. Lorsque COM essaye de créer un nouvel objet, il regarde d'abord les assemblages enregistrés dans le contexte d'activation par défaut, avant de regarder dans le registre.

1

COM sans enregistrement peut être difficile à configurer mais le processus global n'est pas très complexe. J'ai écrit mon processus ainsi que des outils qui aident les problèmes de débogage dans un post de blog ici:

http://www.west-wind.com/weblog/posts/2011/Oct/09/An-easy-way-to-create-Side-by-Side-registrationless-COM-Manifests-with-Visual-Studio

FWIW, registrationless COM ne fonctionne pas avec les serveurs DCOM EXE malheureusement - que les serveurs DLL sont pris en charge.

Questions connexes