Laden...

Wie migriert man user.configs unter Roaming zwischen versionen? (ConfigurationSection)

Erstellt von Seikilos vor 10 Jahren Letzter Beitrag vor 10 Jahren 580 Views
S
Seikilos Themenstarter:in
753 Beiträge seit 2006
vor 10 Jahren
Wie migriert man user.configs unter Roaming zwischen versionen? (ConfigurationSection)

Hallo,

wir haben eine executable, dessen Assembly version beim Bauen automatisch generiert wird:

[assembly: AssemblyVersion("1.1.*")]

Diese Anwendung benutzt die user.config um eigene Einstellungen abzulegen. Dafür wurde eine eigene ConfigurationSection definiert und im Code benutzt.
Diese Anwendung benutzt nicht die Settings (welche ja auch in die gleiche user.config geschrieben werden)

Was mir jetzt fehlt, ist ein Verständnis, wie man die user.config aus roaming migrieren soll, wenn man eine neue Version aufspielt.

Aktuell wird immer eine Config unter
C:\Benutzer[Benutzer]\AppData\Roaming[CodePath]\AssemblyVersion\user.config abgelegt.

jeder Build erzeugt eine Version wie 1.1.5000.23456 oder 1.1.5000.34567.

Wie migriert man diese Configs auf die aktuelle Version? Mit den Buildnummern ist bei uns das Problem verschärft, weil bei jedem Build, aber wenn ich die Anwendung auf 1.2 stelle, so muss es doch möglich sein, die Version zu migrieren, oder?

Im Netz findet man für Settings so etwas wie ApplicationSettingsBase.Upgrade, aber da ich keine Settings habe, nützt mir das nicht sehr.
Desweiteren gibts noch "manuelle Copy" Lösungen, die ich sehr unglücklich finde, weil hier keine (etwaige) Strukturanpassung gibt.

Life is a short

6.911 Beiträge seit 2009
vor 10 Jahren

Hallo Seikilos,

schau dir mit einem Reflektor (ILSpy z.B.) an wie es bei ApplicationSettingsBase.Upgrade gemacht wird und lass dich davon inspiezieren.

Mehr kann ich nicht sagen, da ich auch nicht weiß wie deine ConfigurationSection genau aufgebaut ist.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"