Supponendo che tu stia parlando di desktop e non di applicazioni web:
Quando si aggiungono impostazioni a un progetto, VS crea un file denominato app.config
nella directory del progetto e memorizza le impostazioni in quel file. Crea anche il Settings.cs
file che fornisce le funzioni di accesso statiche alle singole impostazioni.
In fase di compilazione, VS (per impostazione predefinita; puoi cambiarlo) copia il file app.config
nella directory di compilazione, cambiando il suo nome in modo che corrisponda all'eseguibile (ad esempio, se il tuo eseguibile è denominato foo.exe
, il file verrà denominato foo.exe.config
), che è il nome di. NET Configuration Manager cerca quando recupera le impostazioni in fase di esecuzione.
Se modifichi un'impostazione tramite l'editor delle impostazioni VS, aggiornerà sia app.config
e Settings.cs
. (Se guardi le funzioni di accesso alle proprietà nel codice generato in Settings.cs
, vedrai che sono contrassegnate con un attributo contenente il valore predefinito dell'impostazione che è nel tuo app.config
file.) Se cambi un'impostazione modificando app.config
direttamente il file, Settings.cs
non verrà aggiornato, ma il nuovo valore verrà comunque utilizzato dal programma quando lo si esegue, perché app.config
viene copiato in foo.exe.config
al momento della compilazione. Se lo disattivi (impostando le proprietà del file), puoi cambiare un'impostazione modificando direttamente il foo.exe.config
file nella directory di build.
Poi ci sono le impostazioni con ambito utente.
Le impostazioni dell'ambito dell'applicazione sono di sola lettura. Il programma può modificare e salvare le impostazioni dell'ambito dell'utente, consentendo così a ciascun utente di avere le proprie impostazioni. Queste impostazioni non sono memorizzate nel foo.exe.config
file (poiché in Vista, almeno, i programmi non possono scrivere in nessuna sottodirectory Program Files
senza elevazione); vengono archiviati in un file di configurazione nella directory dei dati dell'applicazione dell'utente.
Il percorso di quel file è %appdata%\%publisher_name%\%program_name%\%version%\user.config
, ad es C:\Users\My Name\AppData\Local\My_Company\My_Program.exe\1.0.0\user.config
. Nota che se hai dato al tuo programma un nome sicuro, il nome sicuro verrà aggiunto al nome del programma in questo percorso.