2015-04-20 6 views
1

В настоящее время у нас есть MSI (скажем, Broker.msi). В рамках установки MSI (определенный в Wix) создает новый раздел реестра (Брокер) и добавляет к нему 2 подраздела. После установки, когда пользователь регистрирует наш продукт, в разделе «Брокер» добавлен еще один ключ реестра «Key3». Обратите внимание, что «Key3» содержит регистрационный ключ, который чрезвычайно важен &, доступ к которому осуществляется другими слоями продукта.Как предотвратить удаление реестра как часть уже установленного MSI удаления?

[Registry Структура после установки & регистр]

HKLM \ Software \ Microsoft \ Broker

  • Key1 (добавленные установщиком)

  • Key2 (добавленные установщиком)

  • Key3 (добавляется, когда пользователь регистрирует продукт UCT)

[Wix фрагмент кода]

<Component Id="RegistryEntries" Guid="*" Win64="$(var.WIN64_COMPONENT)"> 
 
      <RegistryKey Root="HKLM" Key="Software\Microsoft\Broker" Action="createAndRemoveOnUninstall"> 
 
      <RegistryValue Type="string" Name="Key1" Value="1rp1users" KeyPath="yes"/> 
 
      <RegistryValue Type="string" Name="Key2" Value="http://windowsbackup/m1" /> 
 
      </RegistryKey> 
 
    </Component> 
 
.... 
 
<ComponentRef Id="RegistryEntries" />

Проблема: До сих пор, так как мы использовали заплаток, мы сталкиваемся вмятина никаких проблем с обновлением. Из следующего выпуска мы хотим перейти на крупные обновления, но самая большая проблема заключается в следующем: во время основного обновления старый продукт будет удален. Согласно фрагменту wix, элементом действия для элемента реестра «Брокер» является «CreateAndRemoveOnUninstall», поэтому весь узел «Брокер» удаляется вместе с подразделением «Key3».

Если я обновляю действие до «Создать», проблема будет исправлена ​​с новыми установками, но так как msi уже находится в процессе производства, как я могу предотвратить его удаление из реестра в рамках основного обновления для существующих продуктов?

ответ

1

Вам необходимо реализовать шаблон Remember Property. Это приведет к тому, что новый MSI будет извлекать данные до того, как основное обновление удалит старую версию, а затем повторно добавит ее в конец.

+0

Отлично. Это сделал трюк. Спасибо, Кристофер! – Ramya

 Смежные вопросы

  • Нет связанных вопросов^_^