¿Cómo anular el registro de mi ensamblaje .net cuando ya no está en la misma ubicación?

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

Pregunta

Tengo un dll que está registrado para interoperabilidad com, por lo que en HKLM \ Software \ Classes \ CLSID [mi guid] \ InprocServer32 [mi versión no] \ Codebase tiene la ruta del dll registrado. Sin embargo, he reorganizado la estructura de mi carpeta para que la ruta ya no sea correcta. ¿Hay alguna forma de cancelar el registro de ese archivo dll sin volver a colocarlo, luego anular el registro y luego eliminar el archivo nuevamente?

¿Y qué pasa si ya no tengo ese dll, o si solo tengo uno con un número de versión diferente?

¿Fue útil?

Solución

Diferentes números de versión (generalmente) no importan. Siempre que la nueva DLL contenga todos los GUID que aparecen en la versión anterior, no se registrará correctamente (utilizando la nueva con regasm, exe). Y, por supuesto, volver a registrar el ensamblado para la interoperabilidad COM reubicará correctamente las claves de registro necesarias.

Otros consejos

Hasta donde yo sé, todo lo que necesita es registrar la DLL en su nueva ubicación.
Puede utilizar la herramienta MS oleview.exe para verificar los puntos de registro COM en la ubicación correcta.

El problema que encontramos al registrar el nuevo dll es cuando tiene una versión inferior a la registrada previamente. Terminas con esto en el registro:

HKCR\MyLib.MyClass\CLSID:(Default)=<my guid>

and 

HKCR\CLSID\<my guid>:Assembly=<string containing version number> 

and 

HKCR\CLSID\<my guid>\InprocServer32\<version number>\ ... more details

Creo que el tiempo de ejecución intentará cargar el ensamblado identificado en HKCR\CLSID\<my guid>:Assembly, por lo que debe intentar cancelar el registro de ese si es posible.

Esta no es una respuesta acerca de cómo cancelar el registro, pero si no puede cancelar el registro, creo que es útil ingresar allí y eliminar la clave del número de versión que ya no tiene, y probablemente actualizar el Assembly valor manualmente si te atreves.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top