Externe AppSettings Datei nicht mit web.config zusammenführen

8

In meiner App habe ich eine web.config-Datei mit einem appSettings-Abschnitt. Der Abschnitt appSettings enthält eine Reihe von Schlüsseln, die von der App verwendet werden. Der Abschnitt appSettings enthält außerdem das Attribut file="AppSettings.config" . Die AppSettings.config-Datei enthält dann eine Teilmenge der Werte aus der Hauptdatei web.config. Die Idee dahinter ist, dass die Datei web.config alle Basis- / Standardeinstellungen enthält und dann Überschreibungen der Standardwerte in der Datei AppSettings.config bereitstellt.

Laut diesem Beitrag ( Ссылка ) sollte mein Setup funktionieren (insbesondere: will merge (and override) settings in the .config file ).

Das Problem, das ich sehe, ist, dass es nicht funktioniert. Ich habe einen Standardwert von false, der dann einige Logik zur Anzeige einiger Beta-Reporting-Funktionalität (oder nicht), und haben die AppSettings.config gesetzt, diesen Schlüssel auf "wahr" zu überschreiben. Leider versteckt es weiterhin das Berichtssystem. Wenn ich jedoch den Wert web.config ändere, wird das Element angezeigt.

Ist es möglich, dass die AppSettings nicht zusammengeführt werden? Wie kann ich testen / beweisen, was wirklich passiert?

BEARBEITEN

Es scheint, dass in der AppSettings.config-Datei ein Fehler aufgetreten ist. Wenn alles ordnungsgemäß funktioniert, ist die Zusammenführung genau wie erwartet erfolgt. Allerdings habe ich immer noch das Problem zu erkennen, wenn die AppSettings.config-Datei ein Problem hat. Ich habe getestet, ob die Datei gültiges XML ist (und das war es), aber dennoch ist ein Problem geblieben. Als ich den funktionierenden Schlüssel aus web.config kopierte und direkt unterhalb des nicht funktionierenden Schlüssels aus AppSettings.config einfügte, schienen sie identisch zu sein. Ich erwarte, dass es einen Weg geben muss, um einen Fehler im Falle eines Zusammenführungsfehlers der Konfigurationsdatei zu werfen?

    
reidLinden 16.09.2013, 15:54
quelle

3 Antworten

13

Ich hatte gerade das gleiche Problem (configs fusioniert nicht wie erwartet), aber nach dem expliziten Löschen der Verzeichnisse / bin und / obj aus dem Lösungsordner und dem Durchführen einer Neuerstellung funktionierte alles wieder wie erwartet, also würde ich vorschlagen, dass Sie es versuchen und sehen, wie es funktioniert ...

PS: Stellen Sie außerdem sicher, dass Sie die Dateieigenschaften der externen Konfiguration auf "Immer kopieren" setzen. Andernfalls wird es nicht im bin-Verzeichnis vorhanden sein, in dem Ihre laufende Anwendung läuft.

    
Wim.van.Gool 13.01.2014 13:08
quelle
3

Ich konnte bestätigen, dass die externe app.config mit einem einfachen Projekt arbeitet.

app.Config (im selben Verzeichnis wie web.config)

%Vor%

web.config

%Vor%

Default.aspx

%Vor%

Innerhalb der Default.aspx.cs

%Vor%

Die resultierende Seite sollte den folgenden Text haben:

%Vor%     
caspian 16.09.2013 16:35
quelle
2

Sie können auf mehrere Konfigurationsdateien zugreifen, indem Sie die WebConfigurationmanager-Methode verwenden. Namespace hinzufügen:

%Vor%

So, um auf die appSettings von

zuzugreifen

../SomeProjectFolder/Environment/Web.config , können Sie tun:

%Vor%

Hoffe, das hilft.

    
bluwater2001 13.02.2014 17:47
quelle

Tags und Links