¿Cómo anulo el registro de las DLL COM agregadas inicialmente con RegSvr32 cuando el/u arg no funciona?


13

derecho, funcionó inicialmente:

c:\regsvr32 Amazing.dll 

a continuación, (accidentalmente - debo añadir) Debo haber ejecutarlo de nuevo, y (de hecho) de nuevo cuando las nuevas versiones de 'Amazing.dll' fueron puestos en libertad. Sí - Yo sé ahora que debería haber corrida:

c:\regsvr32 /u Amazing.dll 

de antemano - pero bueno! Olvidé.

Para ir al grano, cuando agregue la referencia COM en VS, puedo ver 3 instancias de 'Amazing' que apuntan a la misma ubicación (c: \ Amazing.dll), ejecutando regsvr32 /u, elimina una de las referencias, la segunda vez - no hace nada ...

¿Cómo me deshago de estas referencias? ¿Estoy mirando un escenario regedit? - Si es así, ¿qué exactamente pasa si elimino una de las claves ???

Saludos

14

Los GUID de su objeto no deberían estar cambiando. En otras palabras, una vez que registra el objeto COM, volver a registrarse no debe agregar nada adicional al registro.

A menos que haya agregado interfaces u objetos COM adicionales para el proyecto.

En cualquier caso, si se trata de una operación de una vez (y parece que sí), abra regedit y elimine las claves innecesarias de forma manual.


0

Tengo a mí mismo en un lío horrible, con COM antes. Tuve que abrirme paso a través del registro borrando cada referencia, desafortunadamente.


4

Hay una herramienta de MS que todavía está flotando y ha estado funcionando desde Win95 días que escanea el registro y hace cosas como encontrar las teclas COM que ya no apuntan a un archivo válido, etc. llamado RegClean (lo encontré aquí: http://downloads.zdnet.com/abstract.aspx?assetid=881470&node=2094) que he visto en algunos lugares todavía en uso, especialmente cuando se trata de cosas COM heredadas en VB que están generando nuevos GUIs COM después de cada compilación.

Así que si tienes eso, luego borrado y eliminado o movido el archivo, ejecuta la aplicación y se eliminarán las entradas "huérfanas".

Si decide eliminar las claves con RegEdit, es posible que tenga que eliminar los identificadores de clase, así como las entradas guid.