2010-06-27 6 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> 

Die Unterschlüssel InstallDir und DataDirectory werden bei der Deinstallation gelöscht. Wie verhindere ich das?Wie kann verhindert werden, dass Wix Registrierungseinträge bei der Deinstallation entfernt?

Idealerweise Action = "create" muss es tun.

+0

Was ist der Zweck, Daten in der Registrierung zu lassen, nachdem das Programm entfernt wurde? – kiamlaluno

+1

Wenn die Anwendung erneut installiert wird, kann sie wiederhergestellt werden. – Rohit

+2

Ich habe Ihnen einen Zeiger auf etwas gegeben, das unten funktionieren könnte. Aber ich stimme mit kiamlaluno überein, Ihr Deinstallationsprogramm sollte sein Bestes tun, um die Maschine in einen sauberen Zustand zu versetzen, wenn sie deinstalliert. Wenn Ihre Einstellungen beschädigt sind und die App in einen fehlerhaften Zustand versetzt wird, funktioniert die klassische Lösung zum Deinstallieren und Neuinstallieren nicht. – selbie

Antwort

12

Legen Sie das Attribut Permanent = "yes" für die übergeordnete Komponente fest.

Permanent YesNoType  

Wenn dieses Attribut auf ‚Ja‘ gesetzt ist, wird das Installationsprogramm nicht die Komponente während einer Deinstallation entfernen. Das Installationsprogramm registriert einen zusätzlichen Systemclient für die Komponente in den Windows Installer-Registrierungseinstellungen (was im Grunde genommen bedeutet, dass mindestens ein Produkt immer auf diese Komponente verweist). Beachten Sie, dass sich diese Option vom Verhalten beim Nicht-Setzen einer GUID unterscheidet, da die Komponente zwar permanent ist, aber dennoch patchbar ist (weil Windows Installer sie immer noch verfolgt), sie ist einfach nicht deinstallierbar.

Verwandte Themen