Delen via


ClickOnce- en toepassingsinstellingen

Met toepassingsinstellingen voor Windows Forms kunt u eenvoudig aangepaste toepassingen en gebruikersvoorkeuren op de client maken, opslaan en onderhouden. In het volgende document wordt beschreven hoe toepassingsinstellingenbestanden werken in een ClickOnce-toepassing en hoe ClickOnce instellingen migreert wanneer de gebruiker een upgrade uitvoert naar de volgende versie.

De onderstaande informatie is alleen van toepassing op de standaardprovider voor toepassingsinstellingen, de LocalFileSettingsProvider klasse. Als u een aangepaste provider opgeeft, bepaalt die provider hoe de gegevens worden opgeslagen en hoe de instellingen tussen versies worden bijgewerkt. Zie de architectuur van toepassingsinstellingen voor meer informatie over toepassingsinstellingenproviders.

Toepassingsinstellingenbestanden

Toepassingsinstellingen gebruiken twee bestanden: <app> -.exe.config en user.config, waarbij de app de naam is van uw Windows Forms-toepassing. user.config wordt gemaakt op de client wanneer uw toepassing voor het eerst instellingen voor gebruikersbereik opslaat. <app>.exe.configbestaat daarentegen vóór de implementatie als u standaardwaarden voor instellingen definieert. Visual Studio bevat dit bestand automatisch wanneer u de opdracht Publiceren gebruikt. Als u uw ClickOnce-toepassing maakt met behulp vanMage.exe of MageUI.exe, moet u ervoor zorgen dat dit bestand is opgenomen in de andere bestanden van uw toepassing wanneer u het toepassingsmanifest vult.

Opmerking

Gebruik in ClickOnce voor .NET Core 3.1 en .NET 5 of hoger dotnet-mage.exe in plaats van Mage.exe. Zie ClickOnce voor .NET voor meer informatie.

In een Windows Forms-toepassing die niet is geïmplementeerd met ClickOnce, wordt het app<-.exe.config-bestand van een toepassing> opgeslagen in de toepassingsmap, terwijl het user.config bestand wordt opgeslagen in de map Documenten en instellingen van de gebruiker. In een ClickOnce-toepassing <bevindt de app>.exe.config zich in de toepassingsmap in de ClickOnce-toepassingscache en user.config zich in de ClickOnce-gegevensmap voor die toepassing bevindt.

Ongeacht hoe u uw toepassing implementeert, zorgen toepassingsinstellingen voor veilige leestoegang tot <app> -.exe.configen veilige lees-/schrijftoegang tot user.config.

In een ClickOnce-toepassing wordt de grootte van de configuratiebestanden die worden gebruikt door toepassingsinstellingen beperkt door de grootte van de ClickOnce-cache. Zie Het overzicht van clickOnce-cache voor meer informatie.

.NET Core en .NET 5+

Op dit moment moet een .NET Core-assembly die moet worden gepubliceerd, worden ondertekend met een sterk naamsleutelbestand. Als dit niet het geval is, kopieert methode ApplicationSettingsBase.Upgrade instellingen niet correct na een nieuwe ClickOnce-publicatie. U kunt het gebruik van een sterke naam opgeven in de eigenschappen van het .NET Core-project, onder de optie Sterke naamgeving bouwen>.

Versie-updates

Net zoals elke versie van een ClickOnce-toepassing is geïsoleerd van alle andere versies, worden de toepassingsinstellingen voor een ClickOnce-toepassing ook geïsoleerd van de instellingen voor andere versies. Wanneer uw gebruiker een upgrade uitvoert naar een latere versie van uw toepassing, vergelijkt de toepassingsinstellingen de meest recente (hoogst genummerde) versie-instellingen op basis van de instellingen die zijn opgegeven met de bijgewerkte versie en worden de instellingen samengevoegd in een nieuwe set instellingenbestanden.

In de volgende tabel wordt beschreven hoe toepassingsinstellingen bepalen welke instellingen moeten worden gekopieerd.

Type wijziging Upgrade-actie
Instelling toegevoegd aan <app>.exe.config De nieuwe instelling wordt samengevoegd met de <app>.exe.config van de huidige versie.
Instelling verwijderd uit <app>.exe.config De oude instelling is verwijderd uit de <app>.exe.config van de huidige versie.
De standaardinstelling is gewijzigd; lokale instelling is nog steeds ingesteld op de oorspronkelijke standaardinstelling in user.config De instelling wordt samengevoegd in de user.config van de huidige versie met de nieuwe standaardwaarde als de waarde
De standaardinstelling is gewijzigd; instelling ingesteld op niet-standaard in user.config De instelling wordt samengevoegd in de user.config van de huidige versie met de niet-standaardwaarde behouden

Als u uw eigen wrapperklasse voor toepassingsinstellingen hebt gemaakt en de updatelogica wilt aanpassen, kunt u de Upgrade methode overschrijven.

ClickOnce- en roaminginstellingen

ClickOnce werkt niet met roaminginstellingen, waardoor uw instellingenbestand u kan volgen op computers in een netwerk. Als u roaminginstellingen nodig hebt, moet u een provider voor toepassingsinstellingen implementeren waarin instellingen via het netwerk worden opgeslagen of uw eigen aangepaste instellingenklassen ontwikkelen voor het opslaan van instellingen op een externe computer. Zie de architectuur voor toepassingsinstellingen voor meer informatie bij instelling-leveranciers.