Non sovrascrivere il file settings.settings con clickonce

All’inizio avevo alcune impostazioni definite dall’utente memorizzate nel mio file app.config, sotto appSettings. Queste sono proprietà che l’utente può modificare durante il runtime. Il primo problema che ho è quando distribuisco la mia applicazione con ClickOnce sovrascrive il file app.config e l’utente ha perso le sue impostazioni personali.

Quindi ho spostato le proprietà nel file settings.settings (= sezione userettings in app.config), come ho trovato su Internet che questa sezione non viene sovrascritta durante la distribuzione con ClickOnce. No, lo fa .. Impostazioni. Le proprietà delle impostazioni sono:

  • Crea azione = contenuto
  • Copia su = Non copiare

Quindi, come posso realizzare che le impostazioni personali del mio utente non vengano sovrascritte, nel file app.config o nel file settings.settings. O c’è un altro modo e sto sbagliando?

Grazie!

Questo metodo copia le impostazioni dall’installazione precedente quando si distribuisce una nuova versione dell’applicazione con ClickOnce. Quindi tutte le impostazioni definite dall’utente che l’utente ha fatto verranno copiate e quindi disponibili dopo l’aggiornamento. Ho provato questo e funziona per me.

public static void UpgradeUserSettings() { if (Settings.Default.upgradeRequired) { Settings.Default.Upgrade(); Settings.Default.upgradeRequired = false; Settings.Default.Save(); } } 

Metodo ApplicationSettingsBase.Upgrade MSDN

altra domanda su StackOverflow