Dela via


Lagra och hämta inställningar och andra appdata

Appdata är föränderliga data som skapas och hanteras av en specifik app. Den innehåller körningstillstånd, appinställningar, användarinställningar, referensinnehåll (till exempel ordlistedefinitioner i en ordlisteapp) och andra inställningar. Appdata skiljer sig från användardata, data som användaren skapar och hanterar när du använder en app. Användardata innehåller dokument- eller mediefiler, e-post- eller kommunikationsavskrifter eller databasposter som innehåller innehåll som skapats av användaren. Användardata kan vara användbara eller meningsfulla för fler än en app. Detta är ofta data som användaren vill manipulera eller överföra som en entitet oberoende av själva appen, till exempel ett dokument.

Viktig information om appdata: Livslängden för appdata är kopplad till appens livslängd. Om appen tas bort går alla appdata förlorade till följd av detta. Använd inte appdata för att lagra användardata eller något som användarna kan uppfatta som värdefullt och oersättligt. Vi rekommenderar att användarens bibliotek och Microsoft OneDrive används för att lagra den här typen av information. Appdata är idealiska för att lagra appspecifika användarinställningar, inställningar och favoriter.

Typer av appdata

Det finns två typer av appdata: inställningar och filer.

Inställningar

Använd inställningar för att lagra användarinställningar och information om programtillstånd. Med appdata-API:et kan du enkelt skapa och hämta inställningar (vi visar några exempel senare i den här artikeln).

Här är datatyper som du kan använda för appinställningar:

  • UInt8, Int16, UInt16, Int32, UInt32, Int64, UInt64, Single, Double
  • Boolesk
  • Char16, Sträng
  • DateTime, TimeSpan
  • GUID, Point, Size, Rect
  • ApplicationDataCompositeValue: En uppsättning relaterade appinställningar som måste serialiseras och deserialiseras atomiskt. Använd sammansatta inställningar för att enkelt hantera atomiska uppdateringar av beroende inställningar. Systemet säkerställer integriteten för sammansatta inställningar vid samtidig åtkomst och roaming. Sammansatta inställningar är optimerade för små mängder data och prestanda kan vara dåliga om du använder dem för stora datamängder.

Filer

Använd filer för att lagra binära data eller för att aktivera egna, anpassade serialiserade typer.

Lagra appdata i appdatalagren

När en app installeras ger systemet sina egna datalager per användare för inställningar och filer. Du behöver inte veta var eller hur dessa data finns, eftersom systemet ansvarar för att hantera den fysiska lagringen, vilket säkerställer att data hålls isolerade från andra appar och andra användare. Systemet bevarar också innehållet i dessa datalager när användaren installerar en uppdatering av din app och tar bort innehållet i dessa datalager helt och hållet när appen avinstalleras.

I appdatalagret har varje app systemdefinierade rotkataloger: en för lokala filer, en för roamingfiler och en för temporära filer. Din app kan lägga till nya filer och nya containrar i var och en av dessa rotkataloger.

Lokala applikationsdata

Lokala appdata ska användas för all information som behöver bevaras mellan appsessioner och som inte är lämplig för roaming-appdata. Data som inte är tillämpliga på andra enheter bör också lagras här. Det finns ingen allmän storleksbegränsning för lokala data som lagras. Använd det lokala appdatalagret för data som det inte är meningsfullt att synkronisera och för stora datamängder.

Hämta det lokala appdatalagret

Innan du kan läsa eller skriva lokala appdata måste du hämta det lokala appdatalagret. Om du vill hämta det lokala appdatalagret använder du egenskapen ApplicationData.LocalSettings för att hämta appens lokala inställningar som ett ApplicationDataContainer-objekt . Använd egenskapen ApplicationData.LocalFolder för att hämta filerna i ett StorageFolder-objekt . Använd egenskapen ApplicationData.LocalCacheFolder för att hämta mappen i det lokala appdatalagret där du kan spara filer som inte ingår i säkerhetskopiering och återställning.

Windows.Storage.ApplicationDataContainer localSettings = 
    Windows.Storage.ApplicationData.Current.LocalSettings;
Windows.Storage.StorageFolder localFolder = 
    Windows.Storage.ApplicationData.Current.LocalFolder;

Skapa och hämta en enkel lokal inställning

Om du vill skapa eller skriva en inställning använder du egenskapen ApplicationDataContainer.Values för att komma åt inställningarna i containern localSettings som vi fick i föregående steg. I det här exemplet skapas en inställning med namnet exampleSetting.

// Simple setting

localSettings.Values["exampleSetting"] = "Hello Windows";

Om du vill hämta inställningen använder du samma ApplicationDataContainer.Values-egenskap som du använde för att skapa inställningen. Det här exemplet visar hur du hämtar den inställning som vi nyss skapade.

// Simple setting
Object value = localSettings.Values["exampleSetting"];

Skapa och hämta ett lokalt sammansatt värde

Skapa ett ApplicationDataCompositeValue-objekt för att skapa eller skriva ett sammansatt värde. Det här exemplet skapar en sammansatt inställning med namnet exampleCompositeSetting och lägger till den i containern localSettings .

// Composite setting

Windows.Storage.ApplicationDataCompositeValue composite = 
    new Windows.Storage.ApplicationDataCompositeValue();
composite["intVal"] = 1;
composite["strVal"] = "string";

localSettings.Values["exampleCompositeSetting"] = composite;

Det här exemplet visar hur du hämtar det sammansatta värde som vi nyss skapade.

// Composite setting

Windows.Storage.ApplicationDataCompositeValue composite = 
   (Windows.Storage.ApplicationDataCompositeValue)localSettings.Values["exampleCompositeSetting"];

if (composite == null)
{
   // No data
}
else
{
   // Access data in composite["intVal"] and composite["strVal"]
}

Skapa och läsa en lokal fil

Om du vill skapa och uppdatera en fil i det lokala appdatalagret använder du fil-API:erna, till exempel Windows.Storage.StorageFolder.CreateFileAsync och Windows.Storage.FileIO.WriteTextAsync. Det här exemplet skapar en fil med namnet dataFile.txt i containern localFolder och skriver aktuellt datum och tid till filen. Värdet ReplaceExisting från uppräkningstypen CreationCollisionOption anger att filen ska ersättas om den redan finns.

async void WriteTimestamp()
{
   Windows.Globalization.DateTimeFormatting.DateTimeFormatter formatter = 
       new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("longtime");

   StorageFile sampleFile = await localFolder.CreateFileAsync("dataFile.txt", 
       CreationCollisionOption.ReplaceExisting);
   await FileIO.WriteTextAsync(sampleFile, formatter.Format(DateTimeOffset.Now));
}

Om du vill öppna och läsa en fil i det lokala appdatalagret använder du fil-API:erna, till exempel Windows.Storage.StorageFolder.GetFileAsync, Windows.Storage.StorageFile.GetFileFromApplicationUriAsync och Windows.Storage.FileIO.ReadTextAsync. Det här exemplet öppnar dataFile.txt filen som skapades i föregående steg och läser datumet från filen. Mer information om hur du läser in filresurser från olika platser finns i Läsa in filresurser.

async void ReadTimestamp()
{
   try
   {
      StorageFile sampleFile = await localFolder.GetFileAsync("dataFile.txt");
      String timestamp = await FileIO.ReadTextAsync(sampleFile);
      // Data is contained in timestamp
   }
   catch (Exception)
   {
      // Timestamp not found
   }
}

Roamingdata

Varning

Roamingdata och inställningar stöds inte längre från och med Windows 11. Den rekommenderade ersättningen är Azure App Service. Azure App Service har brett stöd, väldokumenterat, tillförlitligt och har stöd för scenarier mellan plattformar och ekosystem, till exempel iOS, Android och webben.

Följande dokumentation gäller för Windows 10-versionerna 1909 och lägre.

Om du använder roamingdata i din app kan användarna enkelt hålla appens appdata synkroniserade på flera enheter. Om en användare installerar din app på flera enheter håller operativsystemet appdata synkroniserade, vilket minskar mängden installationsarbete som användaren behöver utföra för din app på sin andra enhet. Roaming gör det också möjligt för användarna att fortsätta en uppgift, till exempel att skapa en lista, precis där de slutade även på en annan enhet. Operativsystemet replikerar roamingdata till molnet när de uppdateras och synkroniserar data till de andra enheter där appen är installerad.

Operativsystemet begränsar storleken på de appdata som varje app kan ströva omkring i. Se ApplicationData.RoamingStorageQuota. Om appen når den här gränsen replikeras ingen av appens appdata till molnet förrän appens totala data i appen är mindre än gränsen igen. Därför är det bästa praxis att endast använda roamingdata för användarinställningar, länkar och små datafiler.

Roamingdata för en app är tillgängligt i molnet så länge den nås av användaren från någon enhet inom det tidsintervall som krävs. Om användaren inte kör en app längre än det här tidsintervallet tas dess roamingdata bort från molnet. Om en användare avinstallerar en app tas inte dess roamingdata bort automatiskt från molnet, den bevaras. Om användaren installerar om appen inom tidsintervallet synkroniseras roamingdata från molnet.

Rekommendationer och varningar för roamingdata

Se viktigt meddelande om roaming-data.

  • Använd roaming för användarinställningar och anpassningar, länkar och små datafiler. Använd till exempel roaming för att bevara en användares bakgrundsfärginställningar på alla enheter.
  • Använd roaming för att låta användare fortsätta en uppgift mellan enheter. Du kan till exempel bläddra i appdata som innehållet i ett utkastat e-postmeddelande eller den senast visade sidan i en läsarapp.
  • Hantera händelsen DataChanged genom att uppdatera appdata. Den här händelsen inträffar när appdata just har synkroniserats från molnet.
  • Flytta referenser till innehåll i stället för rådata. Du kan till exempel använda en URL i stället för innehållet i en onlineartikel.
  • För viktiga tidskritiska inställningar använder du inställningen Högprioritet som är associerad med RoamingSettings.
  • Flytta inte appdata som är specifika för en enhet. Viss information är endast relevant lokalt, till exempel ett sökvägsnamn till en lokal filresurs. Om du bestämmer dig för att röra dig mellan lokal information, säkerställ att appen kan hantera situationen om informationen inte är giltig på den sekundära enheten.
  • Vandra inte i stora uppsättningar med appdata. Det finns en gräns för hur mycket appdata som en app kan ströva omkring i. använd egenskapen RoamingStorageQuota för att få det här maxvärdet. Om en app når den här gränsen kan inga data flyttas förrän storleken på appdatalagret inte längre överskrider gränsen. När du utformar din app bör du överväga hur du sätter en gräns för större data för att inte överskrida gränsen. Om det till exempel krävs 10KB var för att spara ett speltillstånd kan appen endast tillåta användaren att lagra upp till 10 spel.
  • Använd inte roaming för data som förlitar sig på omedelbar synkronisering. Windows garanterar inte en omedelbar synkronisering. roaming kan fördröjas avsevärt om en användare är offline eller i ett nätverk med hög svarstid. Kontrollera att användargränssnittet inte är beroende av omedelbar synkronisering.
  • Använd inte roaming för data som ändras ofta. Om din app till exempel spårar information som ändras ofta, till exempel positionen i en låt efter sekund, ska du inte lagra detta som roamingappdata. Välj i stället en mindre frekvent representation som fortfarande ger en bra användarupplevelse, som den låt som spelas för närvarande.

Roaming-förutsättningar

Se viktigt meddelande om roaming-data.

Alla användare kan dra nytta av roamingappdata om de använder ett Microsoft-konto för att logga in på sin enhet. Dock kan användare och grupprincipadministratörer när som helst stänga av roaming-appdata på en enhet. Om en användare väljer att inte använda ett Microsoft-konto eller inaktiverar funktioner för roamingdata kan hon fortfarande använda din app, men appdata kommer att vara lokala för varje enhet.

Data som lagras i PasswordVault kommer endast att överföras om en användare har gjort en enhet "betrodd". Om en enhet inte är betrodd kommer data som skyddas i det här valvet inte att flyttas.

Konfliktlösning

Se viktigt meddelande om roaming-data.

Roaming-appdata är inte avsedda för samtidig användning på fler än en enhet i taget. Om en konflikt uppstår under synkroniseringen eftersom en viss dataenhet har ändrats på två enheter kommer systemet alltid att gynna värdet som skrevs senast. Detta säkerställer att appen använder den mest up-todatuminformationen. Om dataenheten är en sammansatt inställning sker konfliktlösningen fortfarande på inställningsenhetens nivå, vilket innebär att kompositen med den senaste ändringen synkroniseras.

När du ska skriva data

Se viktigt meddelande om roaming-data.

Beroende på den förväntade livslängden för inställningen bör data skrivas vid olika tidpunkter. Sällan eller långsamt föränderliga appdata bör skrivas omedelbart. Appdata som ändras ofta bör dock endast skrivas regelbundet med jämna mellanrum (till exempel en gång var 5:e minut) samt när appen pausas. En musikapp kan till exempel skriva inställningarna för "aktuell låt" när en ny låt börjar spelas upp, dock bör den exakta positionen i låten endast skrivas vid inaktivering.

Överdrivet användningsskydd

Se viktigt meddelande om roaming-data.

Systemet har olika skyddsmekanismer för att undvika olämplig användning av resurser. Om appdata inte övergår som förväntat är det troligt att enheten tillfälligt har begränsats. Att vänta en stund löser vanligtvis den här situationen automatiskt och ingen åtgärd krävs.

Versionshantering

Se viktigt meddelande om roaming-data.

Appdata kan använda versionshantering för att uppgradera från en datastruktur till en annan. Versionsnumret skiljer sig från appversionen och kan anges efter be vilja. Även om det inte tillämpas rekommenderar vi starkt att du använder ökande versionsnummer, eftersom oönskade komplikationer (inklusive dataförlust) kan inträffa om du försöker övergå till ett lägre dataversionsnummer som representerar nyare data.

Appdata växlar endast mellan installerade appar med samma versionsnummer. Till exempel kommer enheter på version 2 att överföra data mellan varandra och enheter på version 3 gör samma sak, men ingen roaming sker mellan en enhet som kör version 2 och en enhet som kör version 3. Om du installerar en ny app som använder olika versionsnummer på andra enheter synkroniserar den nyligen installerade appen appdata som är associerade med det högsta versionsnumret.

Testning och verktyg

Se viktigt meddelande om roaming-data.

Utvecklare kan låsa sin enhet för att initiera en synkronisering av roaming-appdata. Om det verkar som om appdata inte övergår inom en viss tidsram, kontrollerar du följande punkter och säkerställer att:

  • Dina roamingdata överskrider inte den maximala storleken (se RoamingStorageQuota för mer information).
  • Filerna har stängts och släppts på rätt sätt.
  • Det finns minst två enheter som kör samma version av appen.

Registrera dig för att få ett meddelande när roamingdata ändras

Se viktigt meddelande om roaming-data.

För att använda roaming-appdata måste du registrera ändringar av roamingdata och hämta roamingdatacontainrar så att du kan läsa och skriva inställningar.

  1. Registrera dig för att ta emot meddelanden när roamingdata ändras.

    DataChanged-händelsen meddelar dig när roamingdata ändras. I det här exemplet anges DataChangeHandler som hanterare för ändringar i roamingdata.

void InitHandlers()
    {
       Windows.Storage.ApplicationData.Current.DataChanged += 
          new TypedEventHandler<ApplicationData, object>(DataChangeHandler);
    }

    void DataChangeHandler(Windows.Storage.ApplicationData appData, object o)
    {
       // TODO: Refresh your data
    }
  1. Hämta containrarna för appens inställningar och filer.

    Använd egenskapen ApplicationData.RoamingSettings för att hämta inställningarna och egenskapen ApplicationData.RoamingFolder för att hämta filerna.

Windows.Storage.ApplicationDataContainer roamingSettings = 
        Windows.Storage.ApplicationData.Current.RoamingSettings;
    Windows.Storage.StorageFolder roamingFolder = 
        Windows.Storage.ApplicationData.Current.RoamingFolder;

Skapa och hämta nätverksväxlingsinställningar

Se viktigt meddelande om roaming-data.

Använd egenskapen ApplicationDataContainer.Values för att komma åt inställningarna i containern roamingSettings som vi fick i föregående avsnitt. Det här exemplet skapar en enkel inställning med namnet exampleSetting och ett sammansatt värde med namnet composite.

// Simple setting

roamingSettings.Values["exampleSetting"] = "Hello World";
// High Priority setting, for example, last page position in book reader app
roamingSettings.values["HighPriority"] = "65";

// Composite setting

Windows.Storage.ApplicationDataCompositeValue composite = 
    new Windows.Storage.ApplicationDataCompositeValue();
composite["intVal"] = 1;
composite["strVal"] = "string";

roamingSettings.Values["exampleCompositeSetting"] = composite;

Det här exemplet hämtar de inställningar som vi nyss skapade.

// Simple setting

Object value = roamingSettings.Values["exampleSetting"];

// Composite setting

Windows.Storage.ApplicationDataCompositeValue composite = 
   (Windows.Storage.ApplicationDataCompositeValue)roamingSettings.Values["exampleCompositeSetting"];

if (composite == null)
{
   // No data
}
else
{
   // Access data in composite["intVal"] and composite["strVal"]
}

Skapa och hämta roamingfiler

Se viktigt meddelande om roaming-data.

Om du vill skapa och uppdatera en fil i det centrala appdatalagret använder du fil-API:erna, till exempel Windows.Storage.StorageFolder.CreateFileAsync och Windows.Storage.FileIO.WriteTextAsync. Det här exemplet skapar en fil med namnet dataFile.txt i containern roamingFolder och skriver aktuellt datum och tid till filen. Värdet ReplaceExisting från uppräkningstypen CreationCollisionOption anger att filen ska ersättas om den redan finns.

async void WriteTimestamp()
{
   Windows.Globalization.DateTimeFormatting.DateTimeFormatter formatter = 
       new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("longtime");

   StorageFile sampleFile = await roamingFolder.CreateFileAsync("dataFile.txt", 
       CreationCollisionOption.ReplaceExisting);
   await FileIO.WriteTextAsync(sampleFile, formatter.Format(DateTimeOffset.Now));
}

Om du vill öppna och läsa en fil i roamingappens datalager använder du fil-API:erna, till exempel Windows.Storage.StorageFolder.GetFileAsync, Windows.Storage.StorageFile.GetFileFromApplicationUriAsyncoch Windows.Storage.FileIO.ReadTextAsync. Det här exemplet öppnar dataFile.txt filen som skapades i föregående avsnitt och läser datumet från filen. Mer information om hur du läser in filresurser från olika platser finns i Läsa in filresurser.

async void ReadTimestamp()
{
   try
   {
      StorageFile sampleFile = await roamingFolder.GetFileAsync("dataFile.txt");
      String timestamp = await FileIO.ReadTextAsync(sampleFile);
      // Data is contained in timestamp
   }
   catch (Exception)
   {
      // Timestamp not found
   }
}

Temporära appdata

Det tillfälliga appdatalagret fungerar som en cache. Dess filer flyttas inte och kan tas bort när som helst. Systemunderhållsaktiviteten kan automatiskt ta bort data som lagras på den här platsen när som helst. Användaren kan också rensa filer från det tillfälliga datalagret med diskrensning. Tillfälliga appdata kan användas för att lagra tillfällig information under en appsession. Det finns ingen garanti för att dessa data bevaras efter appsessionens slut eftersom systemet kan frigöra det använda utrymmet om det behövs. Platsen är tillgänglig via egenskapen för tillfällig mapp .

Hämta den tillfälliga databehållaren

Använd egenskapen ApplicationData.TemporaryFolder för att hämta filerna. I nästa steg används variabeln temporaryFolder från det här steget.

Windows.Storage.StorageFolder temporaryFolder = ApplicationData.Current.TemporaryFolder;

Skapa och läsa temporära filer

Om du vill skapa och uppdatera en fil i det tillfälliga appdatalagret använder du fil-API:erna, till exempel Windows.Storage.StorageFolder.CreateFileAsync och Windows.Storage.FileIO.WriteTextAsync. Det här exemplet skapar en fil med namnet dataFile.txt i containern temporaryFolder och skriver aktuellt datum och tid till filen. Värdet ReplaceExisting från uppräkningstypen CreationCollisionOption anger att filen ska ersättas om den redan finns.

async void WriteTimestamp()
{
   Windows.Globalization.DateTimeFormatting.DateTimeFormatter formatter = 
       new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("longtime");

   StorageFile sampleFile = await temporaryFolder.CreateFileAsync("dataFile.txt", 
       CreateCollisionOption.ReplaceExisting);
   await FileIO.WriteTextAsync(sampleFile, formatter.Format(DateTimeOffset.Now));
}

Om du vill öppna och läsa en fil i det tillfälliga appdatalagret använder du fil-API:erna, till exempel Windows.Storage.StorageFolder.GetFileAsync, Windows.Storage.StorageFile.GetFileFromApplicationUriAsync och Windows.Storage.FileIO.ReadTextAsync. Det här exemplet öppnar dataFile.txt filen som skapades i föregående steg och läser datumet från filen. Mer information om hur du läser in filresurser från olika platser finns i Läsa in filresurser.

async void ReadTimestamp()
{
   try
   {
      StorageFile sampleFile = await temporaryFolder.GetFileAsync("dataFile.txt");
      String timestamp = await FileIO.ReadTextAsync(sampleFile);
      // Data is contained in timestamp
   }
   catch (Exception)
   {
      // Timestamp not found
   }
}

Organisera app-data med behållare

För att hjälpa dig att organisera dina inställningar och filer för appdata skapar du containrar (representeras av ApplicationDataContainer-objekt ) i stället för att arbeta direkt med kataloger. Du kan lägga till containrar i de lokala, roamande och tillfälliga programdatalagren. Containrar kan kapslas upp till 32 nivåer djupt.

Om du vill skapa en inställningscontainer anropar du metoden ApplicationDataContainer.CreateContainer . Det här exemplet skapar en container för lokala inställningar med namnet exampleContainer och lägger till en inställning med namnet exampleSetting. Always-värdet från ApplicationDataCreateDisposition-uppräkningen anger att containern skapas om den inte redan finns.

Windows.Storage.ApplicationDataContainer localSettings = 
    Windows.Storage.ApplicationData.Current.LocalSettings;
Windows.Storage.StorageFolder localFolder = 
    Windows.Storage.ApplicationData.Current.LocalFolder;

// Setting in a container
Windows.Storage.ApplicationDataContainer container = 
   localSettings.CreateContainer("exampleContainer", Windows.Storage.ApplicationDataCreateDisposition.Always);

if (localSettings.Containers.ContainsKey("exampleContainer"))
{
   localSettings.Containers["exampleContainer"].Values["exampleSetting"] = "Hello Windows";
}

Ta bort appinställningar och containrar

Om du vill ta bort en enkel inställning som appen inte längre behöver använder du metoden ApplicationDataContainerSettings.Remove . I det här exemplet tas den exampleSetting lokala inställningen bort som vi skapade tidigare.

Windows.Storage.ApplicationDataContainer localSettings = 
    Windows.Storage.ApplicationData.Current.LocalSettings;
Windows.Storage.StorageFolder localFolder = 
    Windows.Storage.ApplicationData.Current.LocalFolder;

// Delete simple setting

localSettings.Values.Remove("exampleSetting");

Om du vill ta bort en sammansatt inställning använder du metoden ApplicationDataCompositeValue.Remove . Det här exemplet tar bort den lokala exampleCompositeSetting sammansatta inställningen som vi skapade i ett tidigare exempel.

Windows.Storage.ApplicationDataContainer localSettings = 
    Windows.Storage.ApplicationData.Current.LocalSettings;
Windows.Storage.StorageFolder localFolder = 
    Windows.Storage.ApplicationData.Current.LocalFolder;

// Delete composite setting

localSettings.Values.Remove("exampleCompositeSetting");

Om du vill ta bort en container anropar du metoden ApplicationDataContainer.DeleteContainer . Det här exemplet tar bort containern för lokala exampleContainer inställningar som vi skapade tidigare.

Windows.Storage.ApplicationDataContainer localSettings = 
    Windows.Storage.ApplicationData.Current.LocalSettings;
Windows.Storage.StorageFolder localFolder = 
    Windows.Storage.ApplicationData.Current.LocalFolder;

// Delete container

localSettings.DeleteContainer("exampleContainer");

Versionshantering av appdata

Du kan välja att versionshantera appdata för din app. På så sätt kan du skapa en framtida version av din app som ändrar formatet för dess appdata utan att orsaka kompatibilitetsproblem med den tidigare versionen av din app. Appen kontrollerar versionen av appdata i datalagret och om versionen är mindre än den version som appen förväntar sig bör appen uppdatera appdata till det nya formatet och uppdatera versionen. Mer information finns i egenskapenApplication.Version och metoden ApplicationData.SetVersionAsync .