2009-09-16 11 views
30

Settings.settings genera Settings.Designer.cs che presumibilmente genera app.config che viene quindi copiato nella directory di output come Foo.exe.config. Quando distribuisco l'applicazione senza il file di configurazione, sembra che non accada niente di male. Quindi, a cosa serve quel file?Per cosa è app.config?

risposta

34

Se non si dispone del file di configurazione, utilizza i valori di default dal progettista. Tuttavia, il file di configurazione consente agli utenti/amministratori di modificare facilmente le impostazioni, ad esempio il server con cui si parla, i temi, ecc. Se non si dispone del file, dove ci si aspetterebbe che tali impostazioni vengano archiviate?

si può avere impostazioni per utente e per-applicazione impostazioni, che sono memorizzati in posizioni diverse.

+1

Oh, quindi il file di configurazione è per le applicazioni che non dispongono di un'interfaccia per configurare le proprie impostazioni? – CannibalSmith

+0

dove intendi memorizzare queste impostazioni quindi, nel db? –

+2

@CannibalSmith: se si desidera creare il proprio sistema di configurazione completo, inclusa la memoria ecc., È possibile ignorare app.config. Perché reinventare la ruota però? Si noti che il sistema di configurazione in .NET * è * estensibile (quindi è possibile archiviare teoricamente le impostazioni nel registro, un database, ecc.) Ma è alquanto confuso e scarsamente documentato a tale riguardo. –

6

file di configurazione dell'applicazione contengono le impostazioni specifiche per un'applicazione. Questo file contiene le impostazioni di configurazione che il runtime della lingua comune legge (come il criterio di associazione degli assiemi, gli oggetti remoti e così via) e le impostazioni che l'applicazione può leggere.

+1

Sì, ho letto il manuale, ma a cosa serve veramente * quel file? – CannibalSmith

+2

@CannibalSmith: esattamente questo: le impostazioni di configurazione. Non capisco perché sei confuso. –

+0

Quando lo elimino, le impostazioni di configurazione non mancano. Le impostazioni di configurazione sono memorizzate da qualche parte in Users/Foo/AppData/BlahBlah. – CannibalSmith

1

È possibile memorizzare la configurazione in quel file.

quadro .NET caricherà automaticamente un file di configurazione con l'exe-name.config.

Se non utilizzare le configurazioni nell'applicazione, poi nulla di male accadrà ...

4

Il file di configurazione è facoltativo, se non esiste, ambienti come ASP.NET torneranno al file machine.config memorizzato nelle directory di sistema .NET per ottenere le impostazioni predefinite del dispositivo.

Se in realtà aggiungi codice all'app per recuperare le impostazioni dal file di configurazione (ad esempio utilizzando la classe ConfigurationManager) e non esiste, riceverai valori nulli.

Ecco perché è importante verificare la presenza di questo siutation ed avere la vostra applicazione rendono il proprio decisione su come/se per continuare.