Variabili persistenti di app.config negli aggiornamenti tramite Fare clic una volta dopo la distribuzione
-
05-07-2019 - |
Domanda
Ogni volta che viene rilasciato un nuovo aggiornamento per un'applicazione con un clic una volta, le variabili nel file app.config vengono distrutte
<userSettings>
<app.My.MySettings>
<setting name="Email" serializeAs="String">
<value />
</setting>
<setting name="UserName" serializeAs="String">
<value />
</setting>
</app.My.MySettings>
</userSettings>
Come posso impedirlo?
Esiste un modo per ottenere le variabili dalla precedente versione dell'applicazione?
Soluzione
Disponi di " Le applicazioni dovrebbero verificare la presenza di aggiornamenti " opzione selezionata?
Dai un'occhiata a Exploring Secrets of Persistent Application Settings (la sezione intitolato " Mantenimento delle impostazioni tra le versioni del programma "):
Per qualsiasi impostazione dalla corrente versione che corrisponde alle impostazioni in versione precedente, questa routine lo farà importali nella versione corrente file user.config:
Nel punto di accesso al programma, inserire il seguente codice.
if (Properties.Settings.Default.UpgradeSettings)
{
Properties.Settings.Default.Upgrade();
Properties.Settings.Default.UpgradeSettings = false;
}
Nota che UpgradeSettings è un'impostazione booleana utente (non applicazione) che devi aggiungere tu stesso e desideri che il valore predefinito sia True
.
Altri suggerimenti
Se si utilizzano le impostazioni a livello di utente anziché le impostazioni a livello di applicazione, verranno copiate in avanti quando viene recuperata una nuova versione. La cosa più sicura da fare, tuttavia, è separare questi dati dall'aggiornamento ClickOnce, uh, "esperienza". Vedi se questo aiuta: