版本跟踪

Browse sample. 浏览示例

本文介绍如何使用 .NET Multi-platform App UI (.NET MAUI) IVersionTracking 接口。 此接口允许你检查应用程序版本和内部版本号,以及查看是否是首次启动应用程序等其他信息。

IVersionTracking 接口的默认实现通过 VersionTracking.Default 属性提供。 IVersionTracking 接口和 VersionTracking 类都包含在 Microsoft.Maui.ApplicationModel 命名空间中。

开始使用

若要在应用中启用版本跟踪,请在 MauiProgram.cs 文件中调用 MauiAppBuilder 对象上的 ConfigureEssentials 方法。 然后,在 IEssentialsBuilder 对象上调用 UseVersionTracking() 方法。

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();
}

检查版本

IVersionTracking 接口提供了许多属性,这些属性描述了应用的当前版本及其与以前版本的关系。 以下示例将跟踪信息写入页面上的标签:

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";
}

首次在启用版本跟踪后运行应用时,IsFirstLaunchEver 属性将返回 true。 如果在已发布应用的较新版本中添加版本跟踪,IsFirstLaunchEver 可能会错误地报告 true。 首次启用版本跟踪且用户运行应用时,此属性始终返回 true。 如果用户已从没有跟踪版本的旧版本升级,则不能完全依赖此属性。

平台差异

所有版本信息均使用首选 API 存储,文件名为 [YOUR-APP-PACKAGE-ID].microsoft.maui.essesss.versiontracking ,并遵循首选文档中概述的相同数据持久性。