2009-09-16 12 views
30

Settings.settings erzeugt Settings.Designer.cs, die vermutlich app.config erzeugt, die dann in das Ausgabeverzeichnis als Foo.exe.config kopiert wird. Wenn ich die Anwendung ohne die Konfigurationsdatei verteile, scheint nichts Schlimmes zu passieren. Also, wozu dient diese Datei?Was ist app.config für?

Antwort

34

Wenn Sie nicht über die Config-Datei haben, verwendet es die Standardwerte aus dem Designer. Die Konfigurationsdatei ermöglicht es Benutzern/Administratoren jedoch, Einstellungen einfach zu ändern - z. B. den Server, mit dem Sie sprechen, Themen usw. Wenn Sie die Datei nicht haben, wo würden Sie diese Einstellungen speichern?

Sie können benutzerspezifische Einstellungen sowie anwendungsspezifische Einstellungen vornehmen, die an verschiedenen Speicherorten gespeichert sind.

+1

Oh, also ist die Konfigurationsdatei für Anwendungen, die keine Schnittstelle haben, um ihre eigenen Einstellungen zu konfigurieren? – CannibalSmith

+0

Wo beabsichtigen Sie, diese Einstellungen dann in der db zu speichern? –

+2

@CannibalSmith: Wenn Sie Ihr eigenes vollständiges Konfigurations-System erstellen möchten, einschließlich Speicher usw., können Sie app.config ignorieren. Warum das Rad neu erfinden? Beachten Sie, dass das Konfigurations-System in .NET * erweiterbar ist (so dass Sie die Einstellungen theoretisch in der Registry, einer Datenbank usw. speichern können), aber es ist in dieser Hinsicht etwas verwirrend und schlecht dokumentiert. –

6

Anwendungskonfigurationsdateien enthalten Einstellungen, die für eine Anwendung spezifisch sind. Diese Datei enthält Konfigurationseinstellungen, die von der Common Language Runtime gelesen werden (z. B. Baugruppenbindungsrichtlinien, Remoting-Objekte usw.) und Einstellungen, die von der Anwendung gelesen werden können.

+1

Ja, ich habe das Handbuch gelesen, aber wofür ist diese Datei * wirklich *? – CannibalSmith

+2

@CannibalSmith: Genau das - Konfigurationseinstellungen. Ich verstehe nicht, warum du verwirrt bist. –

+0

Wenn ich es lösche, gehen Konfigurationseinstellungen nicht verloren. Konfigurationseinstellungen sind irgendwo in Benutzer/Foo/AppData/BlahBlah gespeichert. – CannibalSmith

1

Sie können Ihre Konfiguration in dieser Datei speichern.

Das .Net-Framework lädt automatisch eine Konfigurationsdatei mit der exe-name.config.

Wenn Sie Konfigurationen in Ihrer Anwendung nicht verwenden, dann nichts Schlimmes passieren wird ...

4

Die Konfigurationsdatei ist optional, wenn sie nicht existiert, werden Umgebungen wie ASP.NET auf die in den .NET-Systemverzeichnissen gespeicherte Datei machine.config zurückgreifen, um maschinenweite Standardwerte zu erhalten.

Wenn Sie Ihrer App tatsächlich Code hinzufügen, um Einstellungen aus der Konfigurationsdatei abzurufen (z. B. mit der Klasse ConfigurationManager) und diese nicht existiert, erhalten Sie Nullwerte.

Aus diesem Grund ist es wichtig, nach dieser Situation zu suchen und Ihre Anwendung selbst entscheiden zu lassen, wie/ob sie fortfahren soll.