He creado un Componente con una condición DISABLEMSIUPGRADE, que se establece cuando instalo el MSI usando ExternalUI. Sin embargo, MSI no elimina la entrada en Desinstalar. Creo que el problema es causado por la Condición, pero no puedo solucionarlo.WiX no elimina la clave de registro en la desinstalación
<Component Id="compMSI" Guid="5f18af6a-b839-4b4d-9d4f-79cf7826f749">
<Condition>DISABLEMSIUPGRADE</Condition>
<RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(var.PGuid)" Action="createAndRemoveOnUninstall">
<RegistryValue Name="DisplayName" Type="string" Value="$(var.ProductTitle)" />
<!-- ... -->
</RegistryKey>
</Component>
incluso coloqué RemoveRegistryKey elementos en otros componentes para asegurar las claves consigue quitado, sino que también dio hacer el trabajo ...
También probé a almacenar y leer la propiedad DISABLEMSIUPGRADE en la clave.
// edit: Experimenté un poco y descubrí que el elemento CONDITION no es la causa. Parece que si tengo instalada otra versión de mi instalación, la clave de registro no se elimina. ¿Qué podría causar eso?
Muchas gracias, funciona como un encanto ahora;). Sin embargo, después de leer su publicación en el blog, pensé que si se recomienda usar siempre un * como guía de componentes? – Simon
Cuando sea posible, recomiendo usar Component/@ Guid = "*". El conjunto de herramientas de WiX te dirá cuándo no puedes. –