Hallo, ich habe hier eine bereits fertige Applikation, die neu auf einem Server laufen sollte (Vorher liefs nur unter einem Benutzerprofil). Leider wurden im Programm in den Settings viele Variablen definiert, die im Benutzerprofile gespeichert werden. Nun möchte ich das so ändern, dass die Settings von jedem, der das Programm auf dem Server-Share ausführt, geändert und für alle übernommen werden können. Gibt es dafür einen einfachen Workaround?
Hey gijoe222,
Das hier ist mein erter Beitrag in diesem Forum, ich hoffe ich kann dir helfen.
Wenn du die Bereichs-Option für eine Settings-Value auf Anwendung(Global) stellst, dann kannst due diese nicht vom Programm aus speichern. Die Anwendungs-Settings werden immer wieder mit den Default-Werten geladen. Diese liegen im selben Ordner wie die Assembly, in der "AssemblyName.config". Es gibt soweit ich weis keine Möglichkeit diese Datei mit den Werten aus der Settings-Klasse zu überschreiben.
Ich würde es über die XmlSerializer - Klasse lösen. Damit kannst du ein Objekt ,bzw. alle Felder und Eigenschaften mit dem Zugrifsmodifizierer Public, Serialisieren und in einem XML-File im Programmordner speichern und wieder Laden.
Gruß stalky13
Aus großer Macht folgt große Verantwortung!
Naja, das bedeutet aber eine Menge arbeit
jepp 😭 und dazu kommt noch, dass du die Eigenschaften und Felder einer eigenen Settings-Klasse nich auf Propertys in einem Win-Form Control verschalten kannst.
kann ich nicht einfach für jeden User denselben Pfad festlegen?
Ja, ich hab Creating a Custom Settings Provider gefunden. Das Prinzip is einen eigenen SettingsProvider zu schreiben, der die Einstellungen verwaltet. Danach muss die Eigenschaft "Provider" jeder einzelnen Settings-Variable von "" auf den Namen deiner SettingsProvider-Klasse gesetzt werden.
Ich hab mir den Code aus dem Link aber noch nicht genau angesehen. Evtl. musst du ihn für dein vorhaben noch anpassen.
Aus großer Macht folgt große Verantwortung!