Angenommen, Sie sprechen von Desktop- und nicht von Webanwendungen:
Wenn Sie einem Projekt Einstellungen hinzufügen, erstellt VS eine Datei mit dem Namen app.config
in Ihrem Projektverzeichnis und speichert die Einstellungen in dieser Datei. Außerdem wird die Settings.cs
Datei erstellt, die die statischen Accessoren für die einzelnen Einstellungen bereitstellt.
Zur Kompilierungszeit kopiert VS (standardmäßig; Sie können dies ändern) das app.config
in das Build-Verzeichnis und ändert seinen Namen entsprechend der ausführbaren Datei (z. B. wenn Ihre ausführbare foo.exe
Datei benannt ist , wird die Datei benannt foo.exe.config
). Dies ist der Name der. Der NET-Konfigurationsmanager sucht, wann er zur Laufzeit Einstellungen abruft.
Wenn Sie eine Einstellung über den VS-Einstellungseditor ändern, werden beide aktualisiert app.config
als alsSettings.cs
. (Wenn Sie sich die Eigenschafts-Accessoren im generierten Code in ansehen Settings.cs
, werden Sie feststellen, dass sie mit einem Attribut gekennzeichnet sind, das den Standardwert der Einstellung in Ihrer app.config
Datei enthält.) Wenn Sie eine Einstellung ändern, indem Sie die app.config
Datei direkt bearbeiten , Settings.cs
wird nicht aktualisiert, aber der neue Wert wird weiterhin von Ihrem Programm verwendet, wenn Sie es ausführen, da es app.config
zur foo.exe.config
Kompilierungszeit kopiert wird. Wenn Sie dies deaktivieren (indem Sie die Eigenschaften der Datei festlegen), können Sie eine Einstellung ändern, indem Sie die foo.exe.config
Datei direkt im Erstellungsverzeichnis bearbeiten .
Dann gibt es benutzerdefinierte Einstellungen.
Die Einstellungen für den Anwendungsbereich sind schreibgeschützt. Ihr Programm kann Einstellungen für den Benutzerbereich ändern und speichern, sodass jeder Benutzer seine eigenen Einstellungen vornehmen kann. Diese Einstellungen werden nicht in der foo.exe.config
Datei gespeichert (da Programme zumindest unter Vista nicht in ein Unterverzeichnis Program Files
ohne Erhöhung schreiben können ). Sie werden in einer Konfigurationsdatei im Anwendungsdatenverzeichnis des Benutzers gespeichert.
Der Pfad zu dieser Datei lautet %appdata%\%publisher_name%\%program_name%\%version%\user.config
zC:\Users\My Name\AppData\Local\My_Company\My_Program.exe\1.0.0\user.config
. Beachten Sie, dass, wenn Sie Ihrem Programm einen starken Namen gegeben haben, der starke Name an den Programmnamen in diesem Pfad angehängt wird.