Sto progettando un progetto di applicazione Web ASP.NET MVC4. Nella radice del mio progetto, ho il file standard predefinito Web.config
con i miei elementi corrispondenti. In particolare, ho definito alcuni elementi appSettings
. Come esempio estratto per dimostrare questo:Accesso alle impostazioni delle app da più file Web.config
<appSettings>
<add key="foo" value="bar" />
</appSettings>
Naturalmente, posso accedere a questo elemento nel codice utilizzando ConfigurationManager.AppSettings["foo"]
. Questo funziona perfettamente per me. Tuttavia, sto creando un pacchetto NuGet accanto al mio progetto. Il pacchetto è installato all'interno della propria directory nella directory Areas
del mio progetto. Qui, nella root del mio pacchetto, ho un altro file Web.config
. In questo modo, quando un altro utente importa il pacchetto NuGet, la configurazione per le risorse del pacchetto è nativa per il pacchetto. Lasciate che il pacchetto di Web.config
contiene il seguente:
<appSettings>
<add key="dirEnabled" value="true" />
</appSettings>
Giusto per chiarire, in termini di percorsi relativi, ora ho due file Web.config, uno a ./Web.config
e uno a ./Areas/PackageName/Web.config
.
All'interno del mio pacchetto, voglio recuperare il valore per dirEnabled
. Per fare ciò, effettuo la chiamata: ConfigurationManager.AppSettings["dirEnabled"]
. Tuttavia, questo genera un errore. Sembra che solo la raccolta di appSettings sia stata recuperata da ./Web.config
e non dal mio file di configurazione del pacchetto. È possibile prelevare la raccolta di appSettings dal file di configurazione del mio pacchetto piuttosto che dal file di configurazione di root del progetto?
vedi anche http://stackoverflow.com/questions/11351106/multiple-appsettings-files-is-it-possible –