voglio affermare che un certo valore Registro di sistema esiste dopo l'installazione, così ho aggiunto il seguente componente:WiX: come impedire la rimozione di un valore di registro durante la disinstallazione?
<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 chiave/valore potrebbe già essere impostato prima dell'installazione. Tuttavia, voglio che il valore sia impostato sul mio valore specifico, cioè che verrà sovrascritto con il mio valore.
Il mio problema è ora che questo valore è sempre rimosso quando il mio prodotto viene disinstallato. Tuttavia, desidero solo rimuovere il valore se è stato aggiunto dal mio programma di installazione. Se il mio installatore ha appena modificato il valore, il valore precedente dovrebbe essere ripristinato (o, se questo non è possibile, il mio valore dovrebbe rimanere intatto).
Si prega di notare che la chiave stessa non viene rimossa durante la disinstallazione. Questo sembra funzionare correttamente perché ho specificato Action="create"
sull'elemento RegistryKey
.
C'è forse un'impostazione simile per RegistryValue
che creerà il valore ma non lo rimuoverà durante l'installazione?
AGGIORNAMENTO: Entrambe le chiavi di registro in HKCR sono impostate a livello di macchina, ovvero provengono dal ramo HKLM \ SOFTWARE \ Classes del registro.
Grazie, questo è molto utile. Fammi vedere questo :-) –
+1 per il commento di KeyPath! –