2010-06-27 3 views
9
<RegistryKey Id="MyServerRegInstallDir" Root="HKLM" Key="Software\MyApp\Server" Action="create"> 
    <RegistryValue Name="InstallDir" Type="string" Value="[INSTALLDIR]" /> 
    <RegistryValue Name="DataDirectory" Type="string" Value="[MYAPPDATADIR]" /> 
    </RegistryKey> 

Le sottochiavi InstallDir e DataDirectory vengono eliminate al momento della disinstallazione. Come lo prevengo?Come impedire a Wix di rimuovere le voci di registro durante la disinstallazione?

Idealmente Azione = "creare" deve farlo.

+0

Qual è lo scopo di lasciare i dati nel registro dopo che il programma è stato rimosso? – kiamlaluno

+1

Quando l'applicazione viene reinstallata, può essere ripristinata. – Rohit

+2

Ti ho dato un puntatore a qualcosa che potrebbe funzionare sotto. Ma sono d'accordo con kiamlaluno, il tuo programma di disinstallazione dovrebbe fare del suo meglio per mettere la macchina in uno stato pulito quando si disinstalla. Perché se le tue impostazioni sono corrotte e fa sì che l'app entri in cattive condizioni, la classica soluzione "disinstalla e reinstalla" non funzionerà. – selbie

risposta

12

Imposta l'attributo Permanent = "yes" sul componente principale.

Permanent YesNoType  

Se questo attributo è impostato a 'sì', il programma di installazione non rimuove il componente durante una disinstallazione. Il programma di installazione registra un client di sistema aggiuntivo per il componente nelle impostazioni del registro di Windows Installer (che in pratica significa semplicemente che almeno un prodotto fa sempre riferimento a questo componente). Si noti che questa opzione differisce dal comportamento di non impostare un guid perché sebbene il componente sia permanente, è comunque rintracciabile (poiché Windows Installer lo tiene ancora tracciato), non è solo non installabile.