Estoy intentando escribir un proyecto de instalación/instalador para un controlador de biblioteca de clase que escribí en C# utilizando Visual Studio 2008. El proyecto del controlador tiene una sección de código que se ve así ...¿Por qué mi proyecto de instalación no realizará mi proceso de registro personalizado?
[ComRegisterFunction]
public static void RegisterASCOM(Type t)
{
Trace.WriteLine("Registration Started.");
DoRegistration(true);
}
En las propiedades del proyecto piloto -> "Información de ensamblado" he puesto marcado la casilla que dice Haga COM-Visible = true.
Agregué un proyecto de instalación a la solución en VS, agregué el dll de salida del proyecto del controlador para que se instale en la máquina de destino y establezca la propiedad de registro de la dll en "vsdraCOM". Entonces, tengo entendido que cuando el instalador lo ejecute DEBERÍA ejecutar los métodos del dll que están marcados con [COMRegisterFunction].
Uso de la vista de depuración de SysInternals Puedo controlar cuándo se ve el fragmento de código anterior al observar que aparezca el texto "Registro iniciado" en la ventana. Cuando construyo la solución, puedo ver el texto aparecer así sé que el controlador se está registrando correctamente. El problema es que cuando ejecuto el instalador, no creo que esté haciendo el bit de registro. No veo nada en Debug View. Y si intento acceder a mi controlador a través de otra aplicación, aparece un error que dice "No se puede crear un objeto ActiveX". ¿Por qué el registro no ocurre durante el proceso de instalación?
El controlador se registra para COM pero NO llama a mi método de registro personalizado.
¿Alguien tiene y sugerencias de lo que podría estar perdiendo? ¿Hay alguna otra manera de depurar esto?
(I tiene más de código si alguien quiere de a echar un vistazo !!)