Warum werden persistente Benutzereinstellungen nicht geladen?

8

Ich habe eine Windows-Anwendung, die eine Assembly verwendet, die einige Konfigurationseinstellungen in den Standardanwendungseinstellungen speichert.

Die Einstellungen können zur Laufzeit geändert werden und bleiben somit erhalten:

%Vor%

Die Einstellungen werden korrekt gespeichert und ich bestätige dies, indem ich die Datei user.config ansehe, die im Benutzeranwendungsverzeichnis gespeichert ist (z. B.

) %Vor%

Wenn das Werkzeug jedoch geschlossen und dann erneut gestartet wird, werden alle Einstellungen mit ihren Standardwerten geladen.

Wenn Sie die Datei user.config überprüfen, nachdem die Anwendung ausgeführt wurde, wird bestätigt, dass die Einstellungen weiterhin so gespeichert sind.

Die Einstellungen werden so geladen:

%Vor%

Warum werden die Standardeinstellungen verwendet und nicht die gespeicherten?

Habe ich etwas verpasst?

@ Tenaciouslmpy Die Einstellungen werden während des Konstruktors der Assembly geladen, die selbst im Formularladeereignis der Hauptbaugruppe geladen wird.

@ Austin Dies ist eine eigenständige Anwendung, die ich in Visual Studio debuggen.

    
Kildareflare 04.02.2010, 17:32
quelle

2 Antworten

10

Wenn Sie die Anwendung zwischen den Läufen neu kompilieren, beachten Sie, dass sie eine neue Version der App berücksichtigt und nicht automatisch benutzerspezifische Einstellungen lädt. In dieser Situation müssen Sie Settings.Default.Upgrade aufrufen.

Eine Möglichkeit, dies nur bei Bedarf zu tun, ist das Hinzufügen einer NeedsUpgrade-Einstellung (Wert True) zu den standardmäßigen Benutzereinstellungen der Anwendung. Überprüfen Sie bei App-Start, ob NeedsUpgrade wahr ist. Wenn dies der Fall ist, rufen Sie Upgrade auf, legen NeedsUpgrade auf False fest und speichern Sie die Einstellungen. Wenn sich die App-Version das nächste Mal ändert, wird NeedsUpgrade auf True zurückgesetzt und Sie rufen Upgrade automatisch auf, um alle vorhandenen Benutzereinstellungen erneut einzutragen.

Stellen Sie sicher, dass Sie NeedsUpgrade nach aufrufen, um Upgrades aufzurufen, oder dass es beim Aktualisieren der Einstellungen gelöscht wird.

%Vor%     
technophile 04.02.2010, 18:34
quelle
2

Das klingt wie das Debuggen der Anwendung von Visual Studio, wenn Sie jedes Mal, wenn Sie eine neue Sitzung starten, mit den Standarddaten beginnen.

Wenn Sie dies mit einer installierten Version sehen, würde ich annehmen, dass Sie die Zeichenfolgenwerte nicht wirklich verwenden, wenn Sie denken, dass Sie es sind.

    
Austin Salonen 04.02.2010 18:16
quelle