2010-09-23 16 views
8

Sto usando la funzione .NET user settings e sto affrontando un problema.Come mantenere le impostazioni utente sulla disinstallazione

Quando l'applicazione viene disinstallata, quindi reinstallata, le impostazioni utente vengono perse.

Capisco che è di progettazione, e voglio essere in grado di dare la scelta all'utente nel programma di installazione.

Potresti per favore darmi delle indicazioni su articoli o documentazione che mi aiuteranno?

Grazie mille

risposta

15

Le impostazioni utente .NET non vengono rimosse durante la disinstallazione. In effetti, le impostazioni di tutte le versioni precedenti del software sono conservate nella directory Impostazioni locali.

Quando viene installata la nuova versione, viene creata una nuova versione delle impostazioni e vengono utilizzate le impostazioni predefinite.

Per garantire che l'applicazione unisca nuove impostazioni con la configurazione precedente, è necessario chiamare il metodo Settings.Default.Upgrade().

Quindi la soluzione è rimuovere manualmente le impostazioni su disinstallare se non vogliamo conservarle. Dal momento che quello che mi serviva era la conservazione delle impostazioni precedenti, tutto quello che faccio ora è la creazione di una nuova impostazione denominata UpgradeRequired con true ha il valore di default, quindi aggiungere il codice all'avvio dell'applicazione:

if (Properties.Settings.Default.UpdateRequired) 
{ 
    Properties.Settings.Default.Upgrade(); 
    Properties.Settings.Default.UpdateRequired = false; 
} 
1

Si potrebbe scrivere le impostazioni che si desidera salvare fuori al Registro di sistema o scrivere come un file XML in un percorso che non sarà influenzato dalla disinstallazione.

+0

mi potrebbe puntare a un articolo che spiega come creare un fornitore di persistenza personalizzato per loro? –

+0

Non ho alcun segnalibro, ma una ricerca rapida su google ha mostrato questo http://www.java2s.com/Code/CSharp/Windows/Savevaluetoregistery.htm – Chuck

+1

Perché questo è stato downvoted senza una spiegazione? –

0

Se si desidera continuare a utilizzare le Impostazioni utente, suggerirei di scrivere una classe di installazione personalizzata e implementare il metodo onUninstalling per andare su find the file e copiarlo in un'altra posizione nota al metodo onInstall del programma di installazione personalizzato. In modo che la prossima volta che viene eseguito il programma di installazione, potrebbe trovare il file.

+1

Perché questo è stato downvoted senza una spiegazione? –

0

Non credo che si voglia effettivamente mantenere i dati sul computer degli utenti dopo una disinstallazione. Lasciare file in giro è una pratica malvagia, un grande no-no. È necessario esporre una funzionalità nell'applicazione stessa per esportare tali impostazioni in una posizione a loro scelta e quindi importarla di nuovo dopo aver reinstallato l'app o per sincronizzarle su un server in modo che siano automaticamente disponibili al momento della reinstallazione. , ecc. In una disinstallazione non dovresti lasciare traccia.

+0

+1 mucho agreo! –

+1

Leggi di nuovo la mia domanda: "Voglio essere in grado di dare la scelta all'utente nel programma di installazione". Voglio dare la scelta. –

Problemi correlati