Package.CheckUpdateAvailabilityAsync 方法

定义

*CheckUpdateAvailabilityAsync 方法允许开发人员检查 .appinstaller 文件中列出的main应用包的更新。 它允许开发人员确定由于 .appinstaller 策略而需要更新。 此方法目前仅适用于通过 .appinstaller 文件安装的应用程序。

public:
 virtual IAsyncOperation<PackageUpdateAvailabilityResult ^> ^ CheckUpdateAvailabilityAsync() = CheckUpdateAvailabilityAsync;
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<PackageUpdateAvailabilityResult> CheckUpdateAvailabilityAsync();
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<PackageUpdateAvailabilityResult> CheckUpdateAvailabilityAsync();
function checkUpdateAvailabilityAsync()
Public Function CheckUpdateAvailabilityAsync () As IAsyncOperation(Of PackageUpdateAvailabilityResult)

返回

一个 PackageUpdateAvailabilityResult,指示应用程序是否有更新以及是否需要更新。

属性

Windows 要求

设备系列
Windows 10, version 1809 (在 10.0.17763.0 中引入)
API contract
Windows.Foundation.UniversalApiContract (在 v7.0 中引入)

示例

注意

面向开发人员的 MSIX 实验室存储库包含有关利用 MSIX 实现桌面应用现代化的其他示例,包括使用嵌入式 的 练习。AppInstaller 功能

应用开发人员希望在其应用中有一个按钮,该按钮允许用户检查应用更新。 若要使应用能够在更新可用时检查,请使用 CheckUpdateAvailabilityAsync 方法,如下所示。

private async void CheckForUpdatesButton_Click(object sender, RoutedEventArgs e)
{
    // Get the current app's package for the current user.
    var pm = new PackageManager();
    Package currentPackage = pm.FindPackageForUser(string.Empty, Package.Current.Id.FullName);

    PackageUpdateAvailabilityResult result = await currentPackage.CheckUpdateAvailabilityAsync();
    switch (result.Availability)
    {
        case PackageUpdateAvailability.Available:
            GoToUpdateAvailableUIView();
            break;
        case PackageUpdateAvailability.Required:
            GoToUpdateRequiredUIView();
            break;
        case PackageUpdateAvailability.NoUpdates:
            // Dismissable ‘Ok’ dialog.
            ShowNoUpdateAvailableDialog(); 
            break;
        case PackageUpdateAvailability.Unknown:
        default:
            // Log and ignore error.
            Logger.Log($"No update information associated with app {Package.Current.DisplayName}");
            // Dismissable ‘Ok’ dialog.
            ShowNoUpdateAvailableDialog();
            break;
    }
}

开发人员希望从应用内部检查更新,并在更新可用时启动更新过程。

public async void CheckForAvailableUpdatesAndLaunchAsync(string targetPackageFullName)
{
    // Get the current app's package for the current user.
    var pm = new PackageManager();
    Package package = pm.FindPackageForUser(string.Empty, targetPackageFullName);

    PackageUpdateAvailabilityResult result = await package.CheckUpdateAvailabilityAsync();
    switch (result.Availability)
    {
        case PackageUpdateAvailability.Available:
            GoToUpdateAvailableUIView();
            break;
        case PackageUpdateAvailability.Required:
            GoToUpdateRequiredUIView();
            break;
        case PackageUpdateAvailability.NoUpdates:
            // Launch target app and close AppInstaller.
            LaunchTargetApp(targetPackageFullName);
            await ConsolidateAppInstallerView();
            break;
        case PackageUpdateAvailability.Unknown:
        default:
            // Log and ignore error.
            Logger.Log($"No update information associated with app {targetPackageFullName}");
            // Launch target app and close AppInstaller.
            LaunchTargetApp(targetPackageFullName);
            await ConsolidateAppInstallerView();
            break;
    }
}

注解

如果尝试对 Current 属性返回的 Package 对象使用此方法,此方法将失败并出现“拒绝访问”错误。 这是一个已知问题,可能在将来的版本中修复。 此页上的示例演示如何检索有关当前应用的包的更新信息。

JavaScript 不支持此方法。 但是,你可以创建调用此方法的 Windows 运行时 组件,然后从 JavaScript UWP 应用调用此组件。 有关详细信息,请参阅 应用安装程序文件 API 问题

适用于

另请参阅