120 votes

Qu'est-ce que l'attribut "KeyPath" de wix ?

Qu'est-ce que le Wix ' KeyPath Attribut " ? En particulier, comment cela 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>

117voto

Wim Coenen Points 41940

Comme expliqué par Rob Mensching :

Le KeyPath d'un composant est une ressource unique ressource unique que le système Windows Installer utilise pour déterminer si un composant "existe" sur une machine.

Cela signifie que lorsque Windows Installer décidera d'installer votre composant, il vérifiera d'abord si la ressource keypath est déjà présente. Si c'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 keypath est un fichier versionné, Windows Installer considère qu'elle existe uniquement s'il trouve un fichier dont la version est é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é si la clé de registre donnée n'existe pas encore. L'ajout d'une clé de registre à utiliser comme chemin d'accès est une astuce courante lorsque vous avez besoin d'un chemin d'accès pour un composant qui installe des ressources qui ne peuvent pas être utilisées comme chemin d'accès elles-mêmes, comme par exemple un fichier raccourci .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X