O que é o atributo Wix ' KeyPath '? Em particular, como isso se aplica ao seguinte:
<Component Id="ProgramMenuDir" Guid="*">
<RemoveFolder Id="ProgramMenuDir" On="uninstall" />
<RegistryValue Root="HKCU" Key="Software\CompName\AppName"
Type="string" Value="" KeyPath="yes" />
</Component>
Respostas:
Conforme explicado por Rob Mensching :
Isso significa que, quando o Windows Installer decide se deseja instalar seu componente, ele primeiro examinará se o recurso do caminho da chave já está presente. Se for, nenhum dos recursos no componente está instalado.
A presença do recurso do caminho-chave também determina se um componente foi danificado ou desapareceu quando você "repara" um MSI.
Quando o recurso do caminho da chave é um arquivo com versão, o Windows Installer considerará que existe apenas se encontrar um arquivo com uma versão igual ou superior.
No seu exemplo específico, você tem um componente que remove uma pasta na desinstalação. Este componente será instalado apenas se a chave de registro fornecida ainda não existir. Adicionar uma chave do Registro para usar como caminho da chave é um truque comum quando você precisa de um caminho-chave para um componente que instala recursos que não podem ser usados como um caminho-chave, como um atalho .
fonte