Konfigurationseinstellungen bei Update einer .NET 2.0 Anwendung übernehmen
Mit dem Settings-Mechanismus von VS 2005 werden bei der Veröffentlichung von neueren Versionen die Anwendungseinstellungen aus der vorherigen nicht übernommen sondern nur die "Default Werte" gesetzt.
Hier eine Methode in C# die bei Update einer .NET 2.0 Anwendung die alten Einstellungen übernimmt.
Der Mechanismus erfordert die Variable "bool firstTime Default = True" in dem Anwendungs Setting.
using System.Collections; using System.Collections.Generic;
namespace mySpace { // Diese Klasse ermöglicht die Behandlung bestimmter Ereignisse der Einstellungsklasse: internal sealed partial class mySettings{
public mySettings() { this.SettingsLoaded += this.SettingsLoadedEventHandler; // Ereignisshander der Einstellungsklasse hinzufügen }
private void SettingsLoadedEventHandler(object sender, System.Configuration.SettingsLoadedEventArgs e) { if (this.firstTime) { // Startet diese Version der Anwendung das erst mal? bool fT = true; this.firstTime = false; // oder irgenwo im Programm setzten this.Save(); // Versuch die alten Anwendungseinstellunden zu finden try { fT = (bool)GetPreviousVersion("firstTime"); } catch { // Erstinstallation, keine Einstellungen vorhanden // löst Exception aus } if (!fT) { // ältere Version installiert IEnumerator enu = this.PropertyValues.GetEnumerator(); for (int i = 0; i < this.PropertyValues.Count; i++){ enu.MoveNext(); SettingsPropertyValue obj = (SettingsPropertyValue)enu.Current; try { // hier werden die alten Einträge in die neuen übernommen this[obj.Name] = GetPreviousVersion(obj.Name); } catch { // fehlende Einträge in alter Setting-Liste // generieren eine Exception } } } } } } }
|