consiglio vivamente utilizzando lo strumento Wix Heat.exe per raccogliere tutti i dati necessari per registrare il componente COM e quindi fare riferimento il frammento nel vostro .wxs file in questo modo:
<ComponentGroupRef Id="FooBar.dll" />
o includere nel il vostro file .wxs come questo:
<?include FooBar.dll.wxi?>
questo metodo ti dà il pieno controllo su ciò che accade durante la registrazione/annullamento della registrazione del componente COM.
È comunque possibile utilizzare Regsvr32 in un progetto Wix. Ma si basa sulla corretta attuazione delle funzioni RegisterServer/UnregisterServer nel componente COM
<CustomAction Id="RegisterFooBar"
Directory="INSTALLDIR"
ExeCommand='regsvr32.exe /s "[INSTALLDIR]FooBar.dll"'>
</CustomAction>
<CustomAction Id="UnregisterFooBar"
Directory="INSTALLDIR"
ExeCommand='regsvr32.exe /s /u "[INSTALLDIR]FooBar.dll"'>
</CustomAction>
Allora aggiungi la tua azione per la sequenza di installazione.
<InstallExecuteSequence>
<Custom Action="RegisterFooBar" After="InstallFinalize">NOT Installed</Custom>
<Custom Action="UnregisterFooBar" After="InstallFinalize">REMOVE="ALL"</Custom>
</InstallExecuteSequence>
fonte
2012-05-09 13:57:00
Sebbene sia stato richiesto un metodo di registrazione, è possibile non registrare i componenti COM. I modelli COM senza registrazione consentono di utilizzare DLL COM senza toccare il Registro di sistema. Vedere: http://msdn.microsoft.com/en-us/library/ms973913.aspx – harper