Angenommen, ein Projekt enthält sowohl App.config- als auch Web.config-Dateien mit einigen widersprüchlichen Informationen. Gibt es Regeln, welche der Dateien eine höhere Priorität hat? Oder eine Anwendung muss beide ignorieren und eine Ausnahme auslösen?
Von MSDN für .NET 4.5:
Wenn Sie einen Dienst in Visual Studio konfigurieren, verwenden Sie entweder eine Datei Web.config oder eine Datei App.config, um die Einstellungen festzulegen. Die Auswahl des Namens der Konfigurationsdatei hängt von der Hosting-Umgebung ab, die Sie für den Service ausgewählt haben. Verwenden Sie eine Web.config-Datei, wenn Sie Ihren Dienst mit IIS hosten. Verwenden Sie eine App.config-Datei, wenn Sie eine andere Hosting-Umgebung verwenden.
In Visual Studio wird die Datei mit dem Namen App.config zum Erstellen der endgültigen Konfigurationsdatei verwendet. Der endgültige Name, der tatsächlich für die Konfiguration verwendet wird, hängt vom Namen der Assembly ab. Beispielsweise hat eine Assembly mit dem Namen "Cohowinery.exe" einen endgültigen Konfigurationsdateinamen von "Cohowinery.exe.config". Sie müssen jedoch nur die App.config-Datei ändern. Änderungen an dieser Datei werden bei der Kompilierung automatisch in die endgültige Anwendungskonfigurationsdatei übernommen.
Wenn Sie eine App.config-Datei verwenden, führt das Konfigurationssystem die App.config-Datei mit dem Inhalt der Datei "Machine.config" zusammen, wenn die Anwendung gestartet und die Konfiguration angewendet wird. Dieser Mechanismus ermöglicht das Definieren von maschinenweiten Einstellungen in der Datei Machine.config. Die Datei App.config kann zum Überschreiben der Einstellungen der Datei Machine.config verwendet werden. Sie können auch die Einstellungen in der Datei Machine.config sperren, damit sie verwendet werden. Im Fall Web.config führt das Konfigurationssystem die Web.config-Dateien in allen Verzeichnissen, die zum Anwendungsverzeichnis führen, in die Konfiguration zusammen, die angewendet wird. Weitere Informationen zur Konfiguration und zu den Einstellungsprioritäten finden Sie in den Themen im System.Configuration-Namespace.
Hier ist auch ein toller Beitrag für diejenigen, die MS Azure verwenden, die die Unterschiede b / w ApplicationSettings , appSettings (app.config / web.config) und erklären ConfigurationSettings (.csdef / .cscfg):
Tags und Links configuration .net c# app-config web-controls