Konfigurationsdatei
-
Hallo Gemeinde,
irgendwie verwirrt mich .NET gerade. Ich hole mit Hilfe von
Properties.Settings.Default.ServerAddress
die Server-Adresse des Servers aus der Konfigurationsdatei (*.exe.config). Editiere ich diese Datei (so wird es bei MSDN beschrieben), holt sich das Programm jedoch trotzdem eine alte Einstellung, statt der neuen
Die Datei user.config unter %userprofile%\AppData\Local\COMPANY-NAME\Execute ... existiert nicht.
Woher holt sich das .NET-Zeug die Einstellungen noch her? Werden die irgendwo rumgecached?Für jeden Tipp wäre ich sehr dankbar!
-
Ist der Wert eine Benutzer- oder Anwendungseinstellung?
-
Ist eine Benutzereinstellung.
-
Dann existiert mit 100%-Sicherheit irgendwo die user.config. Es hat auch auf die user.config keinen Einfluss, wenn du in der *.exe.config der Anwendung etwas änderst. Das hängt eben damit zusammen, das Benutzereinstellungen dazu da sind, das der Benutzer es nach seinem belieben einstellen kann.
-
Ich habe schon mit dem Process Monitor von Sysinternals mitgelesen, was die Applikation so alles öffnet. Sie versucht die user.config zu lesen, kann aber den Pfad nicht finden. Gibts für .NET Programme irgendein Fallback? Komisch finde ich auch, dass wenn die user.config nicht zu finden ist, dass das Programm diese Datei nicht wieder automatisch anlegt.
-
Naja, der Fallback ist der Zugriff auf die *.exe.config. - Wo im Normalfall dann auch eine neue user.config draus generiert wird.
-
Hmmm ... Das scheint nicht zu funktionieren. Wenn ich in VS die Einstellungen ändere, die Applikation ausführe, stimmen die ausgelesene Konfiguration immer. Aber sobald ich die exe ausführe und die Konfigurationsdatei ändere, juckt das den Fisch ... Hrm!
-
Dann stell die Konfigurationswerte doch als Anwendungseinstellungen ein? Damit kannst du in der *exe.config rumeditieren so oft du willst, und es wird immer das richtige gelesen.