Training
Learning path
Build mobile and desktop apps with .NET MAUI - Training
In this learning path, use C# and Visual Studio with .NET MAUI to create an app that runs across iOS, Android, and Windows.
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
This article describes how you can use the .NET Multi-platform App UI (.NET MAUI) IVersionTracking interface. This interface lets you check the applications version and build numbers along with seeing additional information such as if it's the first time the application launched.
The default implementation of the IVersionTracking
interface is available through the VersionTracking.Default property. Both the IVersionTracking
interface and VersionTracking
class are contained in the Microsoft.Maui.ApplicationModel
namespace.
To enable version tracking in your app, invoke the ConfigureEssentials method on the MauiAppBuilder object in the MauiProgram.cs file. Then, on the IEssentialsBuilder object, call the UseVersionTracking() method:
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.ConfigureFonts(fonts =>
{
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
})
.ConfigureEssentials(essentials =>
{
essentials.UseVersionTracking();
});
return builder.Build();
}
The IVersionTracking interface provides many properties that describe the current version of the app and how it relates to the previous version. The following example writes the tracking information to labels on the page:
private void ReadVersion_Clicked(object sender, EventArgs e)
{
labelIsFirst.Text = VersionTracking.Default.IsFirstLaunchEver.ToString();
labelCurrentVersionIsFirst.Text = VersionTracking.Default.IsFirstLaunchForCurrentVersion.ToString();
labelCurrentBuildIsFirst.Text = VersionTracking.Default.IsFirstLaunchForCurrentBuild.ToString();
labelCurrentVersion.Text = VersionTracking.Default.CurrentVersion.ToString();
labelCurrentBuild.Text = VersionTracking.Default.CurrentBuild.ToString();
labelFirstInstalledVer.Text = VersionTracking.Default.FirstInstalledVersion.ToString();
labelFirstInstalledBuild.Text = VersionTracking.Default.FirstInstalledBuild.ToString();
labelVersionHistory.Text = String.Join(',', VersionTracking.Default.VersionHistory);
labelBuildHistory.Text = String.Join(',', VersionTracking.Default.BuildHistory);
// These two properties may be null if this is the first version
labelPreviousVersion.Text = VersionTracking.Default.PreviousVersion?.ToString() ?? "none";
labelPreviousBuild.Text = VersionTracking.Default.PreviousBuild?.ToString() ?? "none";
}
The first time the app is run after version tracking is enabled, the IsFirstLaunchEver property will return true
. If you add version tracking in a newer version of an already released app, IsFirstLaunchEver
may incorrectly report true
. This property always returns true
the first time version tracking is enabled and the user runs the app. You can't fully rely on this property if users have upgraded from older versions that weren't tracking the version.
All version information is stored using the Preferences API, and is stored with a filename of [YOUR-APP-PACKAGE-ID].microsoft.maui.essentials.versiontracking and follows the same data persistence outlined in the Preferences documentation.
.NET MAUI feedback
.NET MAUI is an open source project. Select a link to provide feedback:
Training
Learning path
Build mobile and desktop apps with .NET MAUI - Training
In this learning path, use C# and Visual Studio with .NET MAUI to create an app that runs across iOS, Android, and Windows.