Después asking about what Visual Studio does to register a COM Library, se hizo evidente que VS hizo dos cosas para el registro de COM:Typelib Generación e instalación con WiX
- registrados la Biblioteca COM
- crea y registra una biblioteca de tipos
Visual Studio parece hacer este registro usando regasm.exe. Para la primera parte (el registro COM directo) que usa tallow
o heat
(WiX 2.0 o WiX 3.0) parece que toda la información básica de registro COM es correcta.
Sin embargo, lo que el sebo/calor no parece hacer es configurar una instalación de biblioteca de tipos. Sería posible crear una acción personalizada para hacer esto con un instalador de WiX y regasm.exe, pero invocar acciones personalizadas no son las mejores prácticas cuando se trata de instaladores basados en instaladores de Microsoft.
En futuras investigaciones, parece que un msi tiene la capacidad de generar la biblioteca de tipos en la instalación. De hecho, ¡WiX parece tener soporte directo para eso! En un elemento de archivo, puede agregar un elemento Typelib. De hecho, an article over here on wix tiene un ejemplo de rellenar el elemento TypeLib con elementos Interface.
Parece que hay al menos dos atributos requeridos a un elemento de interfaz:
- Id
- Nombre
Larry Osterman speaks about the other parts of the interface that need to be registered for a TypeLib in general, y esta entrada de interfaz parece hacerse cargo de las partes individuales. Larry dice que necesitamos especificar el ProxyStubClassId32 como "{00020424-0000-0000-C000-000000000046}", por lo que podemos agregarlo fácilmente.
Adónde ir desde allí y qué rellenar para los diversos elementos de la interfaz me ha dejado perplejo. He seguido adelante y he agregado el elemento TypeLib a mi archivo wix, y se compila con éxito. Aunque no tengo ni idea de cómo configurar los elementos de la interfaz. ¿Qué tenemos que hacer para completar correctamente el elemento TypeLib y qué aplicaciones o herramientas puedo usar para obtenerlo?
La respuesta a continuación por wcoenen parece prometedora ... Voy a darle una oportunidad.
Actualización: Publiqué mi solución final a continuación como respuesta.
+1, me gustaría que todas las preguntas en este sitio se escribieran así ... –
Heh, doy mi mejor oportunidad. :) –