Я хочу заявить, что после установки существует определенное значение реестра, поэтому я добавил следующий компонент:
<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
, которая создаст значение, но не удалит его при установке?
ОБНОВЛЕНИЕ: Оба раздела реестра в HKCR настраиваются на уровне компьютера, т. Е. Они происходят из ветви реестра HKLM \ SOFTWARE \ Classes.