Каков атрибут wix 'KeyPath'?

Каков атрибут Wix 'KeyPath'? В частности, как делает это относится к следующему:

<Component Id="ProgramMenuDir" Guid="*">
  <RemoveFolder Id="ProgramMenuDir" On="uninstall" />
  <RegistryValue Root="HKCU" Key="Software\CompName\AppName" 
                 Type="string" Value="" KeyPath="yes" />
</Component>
120
задан Stein Åsmul 4 August 2014 в 15:30
поделиться

1 ответ

Как объяснил Роб Меншинг:

Ключевой путь для компонента - это единственный ресурс, который Windows Инсталлятор использует для определения Компонент "существует" на машине.

Это означает, что когда Windows Installer решает, устанавливать ли вашу компоненту, он сначала посмотрит, присутствует ли уже ресурс клавиатуры. Если это так, то ни один из ресурсов в компоненте не установлен.

Наличие ресурса клавиатуры также определяет, был ли компонент поврежден или пропал, когда вы "восстанавливаете" MSI.

Когда ресурс клавиатуры является версионным файлом, инсталлятор Windows будет считать его существующим только в том случае, если найдет файл равной или большей версии.

В вашем конкретном примере, у вас есть компонент, который удаляет папку при деинсталляции. Этот компонент будет установлен только в том случае, если данный ключ реестра еще не существует. Добавление ключа реестра для использования в качестве пути к ключу - обычная уловка, когда вам нужен путь к компоненту, устанавливающему ресурсы, которые сами по себе не могут быть использованы в качестве пути к ключу, например, shortcut.

.
116
ответ дан 24 November 2019 в 01:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: