Quiero afirmar que un determinado valor de registro existe después de la instalación, por lo que añade los siguientes componentes:WiX: ¿Cómo evitar que se elimine un valor de registro en la desinstalación?
<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>
La clave/valor que ya se pudo fijar antes de la instalación. Sin embargo, quiero que el valor se establezca en mi valor específico, es decir, que se sobrescribirá con mi valor.
Mi problema ahora es que este valor es siempre eliminado cuando se desinstala mi producto. Sin embargo, solo quiero que se elimine el valor si mi instalador lo agregó. Si mi instalador acaba de modificar el valor, se debe restaurar el valor anterior (o, si esto no es posible, mi valor debe permanecer intacto).
Tenga en cuenta que la clave no se elimina en la desinstalación. Esto parece funcionar correctamente porque especifiqué Action="create"
en el elemento RegistryKey
.
¿Existe una configuración similar para RegistryValue
que creará el valor pero no lo eliminará en la instalación?
ACTUALIZACIÓN: Ambas claves de registro en HKCR son settinge en toda la máquina, es decir, se originan en la rama HKLM \ SOFTWARE \ Classes del registro.
Gracias, esto es muy útil. Déjame ver esto :-) –
+1 para el comentario de KeyPath! –