Comment désenregistrer les DLL COM initialement ajoutées avec RegSvr32 lorsque l'argument /u ne fonctionne pas ?

StackOverflow https://stackoverflow.com/questions/19725

Question

C'est vrai, j'ai d'abord exécuté :

c:\regsvr32 Amazing.dll

puis, (accidentellement - pourrais-je ajouter) j'ai dû l'exécuter à nouveau, et (en effet) à nouveau lorsque de nouvelles versions de 'Amazing.dll' ont été publiées.Oui je sais maintenant J'aurais dû courir :

c:\regsvr32 /u Amazing.dll

au préalable - mais bon !J'ai oublié.

Pour aller droit au but, lorsque vous ajoutez la référence COM dans VS, je peux voir 3 instances de « Amazing » pointant toutes 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 puis-je me débarrasser de ces références ?Est-ce que je regarde un scénario regedit ?- Si oui - quoi exactement se passe-t-il si je supprime une des clés ???

Acclamations

Était-ce utile?

La solution

Les GUID de votre objet ne devraient pas changer.En d’autres termes, une fois que vous avez enregistré l’objet COM, le réenregistrement ne devrait rien ajouter de plus 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 transaction ponctuelle (et cela semble être le cas), ouvrez regedit et supprimez manuellement les clés inutiles.

Autres conseils

Il existe un outil de MS qui circule toujours et existe depuis Win95 qui analyse le registre et fait des choses comme trouver des clés COM qui ne pointent plus vers un fichier valide, etc. appelé RegClean (je l'ai trouvé ici : http://downloads.zdnet.com/abstract.aspx?assetid=881470&node=2094) que j'ai vu dans certains endroits, en particulier lorsqu'ils manipulent des éléments COM hérités dans VB qui génèrent de nouveaux GUID COM après chaque build.

Donc, si vous avez obtenu cela, désenregistrez et supprimez ou déplacez le fichier, exécutez l'application et elle nettoiera les entrées "orphelines".

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

Je me suis déjà retrouvé dans un horrible pétrin avec COM.Malheureusement, j'ai dû me frayer un chemin dans le registre en supprimant chaque référence.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top