Я хочу утверждать, что определенное значение реестра существует после установки, поэтому я добавил следующий компонент:WiX: Как предотвратить удаление реестра при удалении?
<Component Id="RegistryEntryContextMenuOdt" Guid="4BA5BA24-4F65-4BDF-99EB-CB4B947F31A9" DiskId="1" KeyPath="yes">
<RegistryKey Id="RegKeyOdt" Root="HKCR" Action="create" Key=".odt">
<RegistryValue Type="string" Value="openDocument.WriterDocument.1" />
</RegistryKey>
</Component>
Ключ/значение может уже быть установлен перед установкой. Тем не менее, я хочу, чтобы значение было установлено на мое конкретное значение, то есть оно будет перезаписано моим значением.
Моя проблема в том, что это значение всегда удалено, когда мой продукт удален. Однако я хочу, чтобы значение было удалено, если оно было добавлено моим установщиком. Если мой установщик просто изменил значение, предыдущее значение должно быть восстановлено (или, если это невозможно, мое значение должно оставаться нетронутым).
Обратите внимание, что при удалении сам ключ не удаляется. Это работает правильно, потому что я указал Action="create"
на элемент RegistryKey
.
Возможно, существует аналогичная настройка для RegistryValue
, которая создаст значение, но не удалит его при установке?
UPDATE: Оба ключа реестра под HKCR являются машинами с широким набором параметров, то есть они происходят из ветви реестра HKLM \ SOFTWARE \ Classes.
Спасибо, это очень полезно. Позвольте мне проверить это :-) –
+1 для комментария KeyPath! –