У меня такой сценарий для нашего проекта установщика с использованием WIX 3.6: мы хотим создать раздел реестра в установке (если этого еще не существует), напишите строковое значение с номером версии. При деинсталляции мы хотели бы сохранить этот раздел реестра, но стереть это строковое значение до пустой строки. Я знаю, что могу выполнить раздел «Сохранение реестра», установив его как «Постоянный», но я не знаю, как сделать удаление удалением значения. Спасибо за любую помощь заранее!WIX: запись постоянного ключа реестра, но удаление значения при удалении
ответ
Как я уже упоминал в комментарии ответа caveman_dick, мне пришлось добавить пользовательское действие для выполнения работы. Не удалось найти способ настройки WIX для этого.
Не уверен, что это сработает, поскольку я не сделал это сам, но, возможно, стоит пойти.
Во-первых, создать ключ с ForceCreateOnInstall (постоянный не должен быть обязательно), это не приведет к удалению ключа при удалении:
<Component Id="RegistryEntryKey" Guid="PUT-GUID-HERE">
<RegistryKey Root="HKCU"
Key="Software\Microsoft\MyApplicationName"
ForceCreateOnInstall="yes">
<RegistryValue Type="integer"
Name="VersionNumber"
KeyPath="yes"/>
</RegistryKey>
</Component>
затем просто второй compoment что просто пишет версию по установке:
<Component Id="RegistryEntryValue" Guid="PUT-GUID-HERE">
<RegistryKey Root="HKCU"
Key="Software\Microsoft\MyApplicationName"
Action="write">
<RegistryValue Type="integer"
Name="VersionNumber"
Value="1.2.35"
KeyPath="yes"/>
</RegistryKey>
</Component>
Это следует просто отменить запись при ее установке.
Это не работает. Но я последую за вашим руководством, чтобы найти решение. Проблемы с вашим кодом: 1) в WIX 3.6 атрибут «Действие» RegistryKey устарел, но добавление его не вызовет какой-либо ошибки, просто не будет желаемого результата 2) на самом деле не разрешено иметь RegistryValue без значения атрибут, это вызовет ошибку 3) для первого компонента, даже если я добавлю пустую строку как значение (надеясь, что эта пустая строка будет восстановлена после удаления), весь раздел реестра фактически удаляется во время удаления. Я думаю, WIX просто сильно изменил свое поведение – tete
О, хорошо! :) Я полагаю, что другой вариант, если встроенный материал не будет делать то, что вы хотите, - это создать CustomAction, чтобы сделать это самостоятельно. Не идеально, но на самом деле не так сложно с управляемым пользовательским действием. –
Это именно то, что я делаю. Я стараюсь избегать произвольных действий настолько, насколько могу, но это та ситуация, в которой я должен это делать – tete
- 1. WiX: Как предотвратить удаление реестра при удалении?
- 2. Как предотвратить удаление Wix записей реестра при удалении?
- 3. Как написать запись реестра при удалении с помощью wix
- 4. Удаление файлов при удалении WiX
- 5. Удаление ключа реестра InProgress из реестра Windows
- 6. Восстановить значения реестра ассоциации файлов при удалении
- 7. Невозможно удалить ключи реестра при удалении в установщике WIX
- 8. Удаление значений ключа реестра
- 9. Создание ключа реестра с установщиком wix
- 10. Wix Toolset. Не удалось удалить ключи реестра при удалении
- 11. Как удалить ключи реестра при удалении msi с помощью WIX
- 12. Установщик WiX удаляет файлы при удалении, но не при обновлении
- 13. Wix: Остановка службы Windows при удалении
- 14. Запись реестра не работает правильно в Wix
- 15. WIX: установщик не удаляет свойства при удалении
- 16. В Wix, как получить подстроку значения ключа реестра в свойстве?
- 17. изменение значения ключа реестра
- 18. Как извлечь путь из значения ключа реестра?
- 19. реестра Удаление ошибки
- 20. WiX - Сохранение настроек реестра при основном обновлении
- 21. Компоненты wix не удаляются при удалении
- 22. Чтение и запись ключа в/из реестра
- 23. Wix запускает приложение при удалении
- 24. Ошибка Wix IniFile при удалении
- 25. Удаление MSI-пакета при удалении из Bootstrapper
- 26. WiX - Как удалить пакет при удалении msi
- 27. Удаление значения DB2INSTDEF из реестра
- 28. Удаление ключа реестра с помощью C#
- 29. Установщик WiX не удаляет файлы при удалении
- 30. WiX: откат при обновлении/удалении не работает
Удаление должно автоматически удалять значение, которое он написал во время установки. Было бы недостаточно? –
@AlexeyIvanov Как я уже упоминал, я хотел бы сохранить раздел реестра, который я создал в процессе установки, в основном для переустановки в будущем, поэтому я отметил его как «Постоянный». И я подтвердил, что, установив «Постоянный», ключ будет сохранен после удаления. С другой стороны, я хотел бы стереть строковое значение (я хочу быть уверенным, что я даю ему понять, значение - это строка или DWORD или все, что вы добавляете в раздел реестра. И ключ может иметь несколько значений или суб-ключей). Так что сохранение ключа реестра, но удаление значения - это то, что я хочу – tete
, вы пытались установить атрибут Action вашего ключа на «none», а затем в него встраиваете RegistryValue? – sttaq