que - registrando com dll en wix
metaetiqueta wix (2)
Si no se auto registra entonces, ¿cómo realizamos el registro dll COM mientras instalamos usando WIX?
Según el tutorial , utilicé el ejemplo de ComPlusApplication (no .net dll). Pero no está funcionando. No se registra
Puedo registrarme usando regsvr32 desde la línea de comando con éxito. Leí acerca de no crear acciones personalizadas para registrar com dlls.
Entonces, ¿cuál es el mejor enfoque? Si necesitamos usar calor, ¿dónde escribimos los comandos y agregamos el resultado de wxs al proyecto principal?
Podría tratar de usar el programa heat.exe y luego hacer referencia al fragmento en su código wix.
archivo heat.exe -gg -out
Como en:
archivo heat.exe my.dll -gg -out my.wxs
PD. Si se agrega el modificador -gg se generarán las guías, de lo contrario, se puede omitir si se desean agregar manualmente.
Recomiendo utilizar la herramienta Wix Heat.exe para recopilar todos los datos necesarios para registrar el componente com y luego hacer referencia al fragmento en su archivo .wxs de esta manera:
<ComponentGroupRef Id="FooBar.dll" />
O inclúyalo en su archivo .wxs de la siguiente manera:
<?include FooBar.dll.wxi?>
Este método le da control total sobre lo que sucede durante el registro / Desinscripción del componente Com.
Sin embargo, aún puede usar Regsvr32 en un proyecto Wix. Pero depende de la implementación correcta de las funciones RegisterServer / UnregisterServer en el 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>
Luego agrega tu acción a la secuencia de instalación.
<InstallExecuteSequence>
<Custom Action="RegisterFooBar" After="InstallFinalize">NOT Installed</Custom>
<Custom Action="UnregisterFooBar" After="InstallFinalize">REMOVE="ALL"</Custom>
</InstallExecuteSequence>