Angenommen, Sie sprechen von Desktop- und nicht von Webanwendungen:
Wenn Sie einem Projekt Einstellungen hinzufügen, erstellt VS eine Datei mit dem Namen app.configin Ihrem Projektverzeichnis und speichert die Einstellungen in dieser Datei. Außerdem wird die Settings.csDatei erstellt, die die statischen Accessoren für die einzelnen Einstellungen bereitstellt.
Zur Kompilierungszeit kopiert VS (standardmäßig; Sie können dies ändern) das app.configin das Build-Verzeichnis und ändert seinen Namen entsprechend der ausführbaren Datei (z. B. wenn Ihre ausführbare foo.exeDatei 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.configDatei enthält.) Wenn Sie eine Einstellung ändern, indem Sie die app.configDatei direkt bearbeiten , Settings.cswird nicht aktualisiert, aber der neue Wert wird weiterhin von Ihrem Programm verwendet, wenn Sie es ausführen, da es app.configzur foo.exe.configKompilierungszeit kopiert wird. Wenn Sie dies deaktivieren (indem Sie die Eigenschaften der Datei festlegen), können Sie eine Einstellung ändern, indem Sie die foo.exe.configDatei 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.configDatei gespeichert (da Programme zumindest unter Vista nicht in ein Unterverzeichnis Program Filesohne 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.configzC:\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.