¿Qué es el atributo Wix ' KeyPath '? En particular, cómo se aplica a lo siguiente:
<Component Id="ProgramMenuDir" Guid="*">
<RemoveFolder Id="ProgramMenuDir" On="uninstall" />
<RegistryValue Root="HKCU" Key="Software\CompName\AppName"
Type="string" Value="" KeyPath="yes" />
</Component>
Respuestas:
Como lo explicó Rob Mensching :
Esto significa que cuando Windows Installer decide si instala su componente, primero verá si el recurso keypath ya está presente. Si es así, ninguno de los recursos en el componente está instalado.
La presencia del recurso keypath también determina si un componente se ha dañado o ha desaparecido cuando "repara" un MSI.
Cuando el recurso keypath es un archivo versionado, Windows Installer considerará que existe solo si encuentra un archivo con una versión igual o superior.
En su ejemplo específico, tiene un componente que elimina una carpeta en la desinstalación. Este componente solo se instalará si la clave de registro dada aún no existe. Agregar una clave de registro para usar como ruta clave es un truco común cuando necesita una ruta clave para un componente que instala recursos que no se pueden usar como una ruta clave, como un acceso directo .
fuente