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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top