Qu'est-ce que l' attribut Wix ' KeyPath '? En particulier, comment s'applique-t-il aux éléments suivants:
<Component Id="ProgramMenuDir" Guid="*">
<RemoveFolder Id="ProgramMenuDir" On="uninstall" />
<RegistryValue Root="HKCU" Key="Software\CompName\AppName"
Type="string" Value="" KeyPath="yes" />
</Component>
Réponses:
Comme l' explique Rob Mensching :
Cela signifie que lorsque Windows Installer décide d'installer votre composant, il vérifie d'abord si la ressource keypath est déjà présente. Si tel est le cas, aucune des ressources du composant n'est installée.
La présence de la ressource keypath détermine également si un composant a été endommagé ou a disparu lorsque vous "réparez" un MSI.
Lorsque la ressource de chemin d'accès est un fichier versionné, Windows Installer ne le considérera comme existant que s'il trouve un fichier avec une version égale ou supérieure.
Dans votre exemple spécifique, vous avez un composant qui supprime un dossier lors de la désinstallation. Ce composant ne sera installé que si la clé de registre donnée n'existe pas encore. L'ajout d'une clé de registre à utiliser comme chemin d'accès clé est une astuce courante lorsque vous avez besoin d'un chemin d'accès clé pour un composant qui installe des ressources qui ne peuvent pas être utilisées comme chemin d'accès elles-mêmes, comme un raccourci .
la source