ClickOnce und Anwendungseinstellungen

Anwendungseinstellungen für Windows Forms erleichtern das Erstellen, Speichern und Verwalten von benutzerdefinierten Einstellungen für Anwendungen und Benutzer*innen auf dem Client. Im folgenden Dokument wird beschrieben, wie Anwendungseinstellungsdateien in einer ClickOnce-Anwendung funktionieren und wie ClickOnce Einstellungen migriert, wenn Benutzer*innen ein Upgrade auf die nächste Version durchführen.

Die folgenden Informationen gelten nur für den Standardanbieter für Anwendungseinstellungen, die LocalFileSettingsProvider-Klasse. Wenn Sie einen benutzerdefinierten Anbieter bereitstellen, bestimmt dieser Anbieter, wie er seine Daten speichert und wie er seine Einstellungen zwischen Versionen aktualisiert. Weitere Informationen zu Anwendungseinstellungsanbietern finden Sie unter Architektur der Anwendungseinstellungen.

Anwendungseinstellungsdateien

Anwendungseinstellungen nutzen zwei Dateien: <app>.exe.config und user.config, wobei app der Name Ihrer Windows Forms-Anwendung ist. user.config wird auf dem Client erstellt, sobald die Anwendung erstmals benutzerspezifische Einstellungen speichert. <app>.exe.config ist hingegen vor der Bereitstellung vorhanden, wenn Sie Standardwerte für Einstellungen definieren. Visual Studio schließt diese Datei automatisch ein, wenn Sie den Befehl Veröffentlichen verwenden. Wenn Sie Ihre ClickOnce-Anwendung mit Mage.exe oder MageUI.exe erstellen, müssen Sie beim Auffüllen des Anwendungsmanifests sicherstellen, dass diese Datei in den anderen Dateien Ihrer Anwendung enthalten ist.

Hinweis

Verwenden Sie in ClickOnce für .NET Core 3.1 und .NET 5 oder höher dotnet-mage.exe anstelle von Mage.exe. Weitere Informationen finden Sie unter ClickOnce für .NET.

In einer Windows Forms-Anwendung, die nicht mit ClickOnce bereitgestellt wird, wird die Datei <app>.exe.config einer Anwendung im Anwendungsverzeichnis gespeichert, während die Datei user.config im Ordner Dokumente und Einstellungen von Benutzer*innen gespeichert wird. In einer ClickOnce-Anwendung befindet sich <app>.exe.config im Anwendungsverzeichnis im ClickOnce-Anwendungscache und user.config im ClickOnce-Datenverzeichnis für diese Anwendung.

Unabhängig von der Art der Bereitstellung Ihrer Anwendung gewährleisten die Anwendungseinstellungen sicheren Lesezugriff auf <app>.exe.configund sicheren Lese-/Schreibzugriff auf user.config.

In einer ClickOnce-Anwendung wird die Größe der von den Anwendungseinstellungen verwendeten Konfigurationsdateien von der Größe des ClickOnce-Caches eingeschränkt. Weitere Informationen finden Sie unter Übersicht über den ClickOnce-Cache.

.NET Core und .NET 5 und höher

Derzeit muss eine zu veröffentlichende .NET Core-Assembly mit einer Schlüsseldatei mit starkem Namen signiert werden. Andernfalls kopiert die ApplicationSettingsBase.Upgrade-Methode Einstellungen nach einer neuen ClickOnce-Veröffentlichung nicht ordnungsgemäß. Sie können die Verwendung eines starken Namens in den Eigenschaften des .NET Core-Projekts unter der Option Erstellen > Starke Benennung angeben.

Versionsupgrades

So wie jede Version einer ClickOnce-Anwendung von allen anderen Versionen isoliert ist, werden auch die Anwendungseinstellungen für eine ClickOnce-Anwendung von den Einstellungen für andere Versionen isoliert. Wenn Ihre Benutzer*innen ein Upgrade auf eine höhere Version Ihrer Anwendung durchführen, vergleichen die Anwendungseinstellungen die Einstellungen der neuesten Version (mit der höchsten Anzahl) mit den Einstellungen, die mit der aktualisierten Version bereitgestellt werden, und führen die Einstellungen in einen neuen Satz von Einstellungsdateien zusammen.

In der folgenden Tabelle wird beschrieben, wie Anwendungseinstellungen entscheiden, welche Einstellungen kopiert werden sollen.

Art der Änderung Upgradeaktion
Einstellung zu <app>.exe.config hinzugefügt Die neue Einstellung wird in <app>.exe.config der aktuellen Version zusammengeführt
Einstellung aus <app>.exe.config entfernt Die alte Einstellung wird aus <app>.exe.config der aktuellen Version entfernt
Die Standardeinstellung wurde geändert. Die lokale Einstellung wird in user.config auf den ursprünglichen Standardwert gesetzt Die Einstellung wird in user.config der aktuellen Version mit dem neuen Standardwert als Wert zusammengeführt
Die Standardeinstellung wurde geändert. Die Einstellung wird in user.config auf einen nicht standardmäßigen Wert festgelegt Die Einstellung wird in user.config der aktuellen Version zusammengeführt, wobei der nicht standardmäßige Wert beibehalten wird

Wenn Sie Ihre eigene Wrapperklasse für Anwendungseinstellungen erstellt haben und die Updatelogik anpassen möchten, können Sie die Upgrade-Methode überschreiben.

ClickOnce- und Roamingeinstellungen

ClickOnce funktioniert nicht mit Roamingeinstellungen, die erlauben, dass Ihre Einstellungsdatei Ihnen computerübergreifend in einem Netzwerk folgen kann. Wenn Sie Roamingeinstellungen benötigen, müssen Sie entweder einen Anbieter für Anwendungseinstellungen implementieren, der Einstellungen über das Netzwerk speichert, oder Ihre eigenen benutzerdefinierten Einstellungsklassen zum Speichern von Einstellungen auf einem Remotecomputer entwickeln. Weitere Informationen zu Einstellungsanbietern finden Sie unter Architektur der Anwendungseinstellungen.