Dopo asking about what Visual Studio does to register a COM Library, è diventato chiaro che VS ha fatto due cose per la registrazione COM:Typelib Generazione e installazione con WiX
- registrati COM Biblioteca
- crea e registra una libreria dei tipi
visiva Studio sembra fare questa registrazione usando regasm.exe. Per la prima parte (la registrazione diretta di COM) utilizzando tallow
o heat
(WiX 2.0 o WiX 3.0) sembra che tutte le informazioni di base sulla registrazione COM siano corrette.
Tuttavia, ciò che non sembra fare sego/calore è l'installazione di una libreria di tipi. Sarebbe possibile creare un'azione personalizzata per eseguire questa operazione con un programma di installazione Wix e regasm.exe, ma il richiamo di azioni personalizzate non sono le migliori pratiche quando si tratta di programmi di installazione basati su Microsoft Installer.
Dopo ulteriori ricerche, sembra che un msi abbia la possibilità di generare la libreria dei tipi al momento dell'installazione. In effetti, WiX sembra avere un supporto diretto per questo! In un elemento file, è possibile aggiungere un elemento Typelib. Infatti, an article over here on wix ha un esempio di compilazione dell'elemento TypeLib con gli elementi Interface.
Sembra che ci sia almeno due attributi necessari a un elemento di interfaccia:
- Id
- Nome
Larry Osterman speaks about the other parts of the interface that need to be registered for a TypeLib in general, e questa voce interfaccia sembra prendere cura delle singole parti. Larry dice che dobbiamo specificare ProxyStubClassId32 come "{00020424-0000-0000-C000-000000000046}", così possiamo facilmente aggiungerlo.
Dove andare da lì e cosa compilare per i vari elementi di interfaccia mi ha perplesso. Sono andato avanti e ho aggiunto l'elemento TypeLib al mio file wix, e viene compilato con successo. Sono un po 'incapace di come impostare gli elementi dell'interfaccia però. Cosa dobbiamo fare per compilare correttamente l'elemento TypeLib e quali app o strumenti posso utilizzare per ottenerlo?
La risposta di seguito di wcoenen sembra promettente ... ho intenzione di fare un tentativo.
Aggiornamento: pubblicato la mia soluzione finale sotto come risposta.
+1, vorrei che tutte le domande su questo sito fossero scritte in questo modo ... –
Heh, gli do il mio scatto migliore. :) –