Projektuję projekt aplikacji sieci Web ASP.NET MVC4. W katalogu głównym mojego projektu mam domyślny domyślny plik Web.config
wraz z odpowiednimi elementami. W szczególności mam kilka zdefiniowanych elementów appSettings
. Jako przykład fragment wykazać to:Uzyskiwanie dostępu do aplikacji z wielu plików Web.config
<appSettings>
<add key="foo" value="bar" />
</appSettings>
Naturalnie, można uzyskać dostęp do tego elementu w ramach kodu przy użyciu ConfigurationManager.AppSettings["foo"]
. To działa idealnie dla mnie. Jednak wraz z moim projektem tworzę pakiet NuGet. Pakiet instaluje się w swoim własnym katalogu pod katalogiem mojego projektu Areas
. Tutaj, w katalogu głównym paczki, mam inny plik Web.config
. Jest tak, że gdy inny użytkownik importuje pakiet NuGet, konfiguracja zasobów pakietu jest natywna dla pakietu. Niech pakiet na Web.config
zawierać następujące elementy:
<appSettings>
<add key="dirEnabled" value="true" />
</appSettings>
Wystarczy, aby wyjaśnić w kategoriach względnych ścieżek, teraz mam dwa pliki web.config, jeden na ./Web.config
i jeden na ./Areas/PackageName/Web.config
.
W ramach mojego pakietu chcę odzyskać wartość dla dirEnabled
. Aby to zrobić, wykonuję połączenie: ConfigurationManager.AppSettings["dirEnabled"]
. Powoduje to jednak błąd. Wygląda na to, że pobierany jest tylko zbiór appSettings z ./Web.config
, a nie mój plik konfiguracyjny pakietu. Czy można w ogóle pobrać kolekcję appSettings z pliku konfiguracyjnego mojego pakietu, a nie z głównego pliku konfiguracyjnego projektu?
zobaczyć również http://stackoverflow.com/questions/11351106/multiple-appsettings-files-is-it-possible –