2008-08-21 21 views
13

droit, d'abord couru:Comment annuler l'annulation de l'enregistrement des dll COM initialement ajoutées à RegSvr32 lorsque l'argument/u ne fonctionne pas?

c:\regsvr32 Amazing.dll 

puis, (accidentellement - je pourrais ajouter) Je dois avoir l'exécuter à nouveau, et (en effet) à nouveau lorsque de nouvelles versions de « Amazing.dll » ont été libérés. Oui - Je sais maintenant je aurais dû courir:

c:\regsvr32 /u Amazing.dll 

avance - mais bon! J'ai oublié. Pour raccourcir, quand ajouter la référence COM dans VS, je peux voir 3 instances de 'Amazing' tout pointant vers le même emplacement (c: \ Amazing.dll), en cours d'exécution regsvr32 /u supprime l'une des références, la deuxième fois - ne fait rien ...

Comment se débarrasser de ces références? Est-ce que je regarde un scénario regedit? - Si oui, que se passe-t-il exactement si je supprime l'une des touches ???

Vive

Répondre

14

Les GUID de votre objet ne doivent pas être modifiés. En d'autres termes, une fois que vous avez enregistré l'objet COM, le réenregistrement ne doit rien ajouter au registre. Sauf si vous avez ajouté des interfaces ou des objets COM supplémentaires au projet.

Dans tous les cas, s'il s'agit d'une offre d'une seule fois (et cela semble être le cas), ouvrez regedit et supprimez les clés inutiles manuellement.

0

Je me suis entré dans un horrible gâchis avec COM avant. J'ai dû choisir mon chemin si le registre supprimait chaque référence, malheureusement.

4

Il y a un outil par MS qui circule encore et qui depuis Win95 jours scanne le registre et fait des trucs comme trouver des clés COM qui ne pointent plus sur un fichier valide appelé RegClean (je l'ai trouvé ici: http://downloads.zdnet.com/abstract.aspx?assetid=881470&node=2094) que j'ai vu certains endroits encore en utilisant particulièrement lorsque vous jouez avec des choses COM anciennes dans VB qui génèrent de nouveaux GUID COM après chaque build.

Donc, si vous avez obtenu cela, puis unreg'd et supprimé ou déplacé le fichier, exécutez l'application et il va nettoyer les entrées "orphelines".

Si vous décidez de supprimer les clés à l'aide de RegEdit, vous devrez peut-être supprimer les ID de classe ainsi que les entrées guid.