Perché le impostazioni della mia applicazione non vengono mantenute?
-
20-08-2019 - |
Domanda
Quindi ho alcune impostazioni che rientrano nell'ambito utente , ma per qualche ragione non vengono salvate nel file .exe.config. Faccio quanto segue:
Properties.Settings.Default.Email = "new@value.com";
Properties.Settings.Default.Save();
Eppure guardo il file delle impostazioni nella cartella di debug ed è ancora l'impostazione predefinita che ho impostato in Visual Studio. Sto sbagliando?
Soluzione
Le impostazioni dell'utente sono specifiche dell'utente, quindi non verranno salvate nel file .exe.config, che è a livello di sistema.
Dai documenti di LocalSettingsProvider
:
Impostazioni nell'ambito dell'applicazione e le impostazioni predefinite nell'ambito dell'utente sono memorizzato in un file denominato application.exe.config, che è creato nella stessa directory di file eseguibile. Applicazione le impostazioni di configurazione sono di sola lettura. Dati utente specifici sono memorizzati in un file denominato
username.config
, archiviato in la home directory dell'utente.
Quindi per un'applicazione UserSettingsTest appena eseguita da VS sotto il debugger (da qui il bit vshost) ho finito con un percorso di:
C:\Users\Jon\AppData\Local\UserSettingsTest
\UserSettingsTest.vshost.e_Url_pdqoppugkz1vaawbhwkkcu5ibxpi2fgu
\1.0.0.0\user.config
Altri suggerimenti
Se hai impostato le informazioni di assemblaggio per generare automaticamente qualsiasi numero di versione (1.0. *), ogni volta che esegui il debug della tua app il numero di versione sarà diverso e quindi creerà un nuovo file ogni volta.
In questo caso dovrai eseguire un aggiornamento sul file delle impostazioni:
Properties.Settings.Default.Upgrade()
È inoltre possibile impostare un'impostazione da NeedsUpgrading
a true
per impostazione predefinita e impostarla su false dopo aver eseguito un aggiornamento in modo che gli utenti finali che non cambiano il numero di versione ogni volta che si avvia l'app non aggiornino tutti i tempo
Tutte le impostazioni dell'ambito utente salvate sotto i dati dell'applicazione con all'interno di una cartella che indica la versione dell'applicazione e il nome.
Puoi vedere queste cartelle facendo clic su " sincronizza " nel tuo " impostazioni dell'applicazione " finestra di dialogo.
In Vista in genere:
- C: \ Users [currentuser] \ AppData \ Local [CompanyName] [AppName] \ versione
- C: \ Users [currentuser] \ AppData \ Roaming [CompanyName] [AppName] \ versione
Fatto in questo modo a causa delle impostazioni sono correlate con utente corrente e Controllo dell'account utente . In Vista puoi anche vedere che le impostazioni dell'intera applicazione non sono memorizzate nel file di configurazione.
[CompanyName] e [ProductName] provengono dalle impostazioni delle Informazioni di assemblaggio.