Hallo Leute,
wenn die Assembly-Version unseres Projekts erhöht wurde wird dies bei Programmstart ermittelt und die user.settings und andere settings werden aus der alten Assembly-Version übernommen.
Ihr kennt sicher alle das Spiel. Das funktioniert einwandfrei.
//...
Properties.Settings.Default.Upgrade();
Properties.Settings.Default.Save();
//...
Wenn wir nun aber das "Target Framework" von 4 auf 4.5 erhöhen funktioniert das nicht mehr und das Programm lädt die Standard-Settings weil das Programm ein neues Verzeichnis erstellt:
Vorher: C:\Users\mustermann\AppData\Local\MyCompany\test.exe_Url_fspcll1qcdchxiqwa0jl3mhhm0cuhch5
Nachher:
C:\Users\mustermann\AppData\Local\MyCompany\test.exe_Url_twhzxhbwk1vocizpurpq2j3t4ei0zgbs
Wie macht Ihr das?
Viele Grüße,
Marc
Guten Tag,
ja ich kenne das Spiel. Und ich habe es aufgegeben. Ich schreibe die Settings wieder in die Registry unter
HKEY_CURRENT_USER\SOFTWARE\<Company>\<Product>
Siehe Microsoft.Win32.Registry.GetValue und Microsoft.Win32.Registry.SetValue.
Gruss Wollmich
Die Registry ist hier trotzdem Käse 😉
Für den Fall gibt es den ProgramData-Folder. Da macht man sich nen Company und Application Ordner drunter und schmeisst da die Settings rein.
Das harmoniert auch 1A mit dem .NET Konfigurationsframework.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code