Partager via


Package.CheckUpdateAvailabilityAsync Méthode

Définition

La méthode *CheckUpdateAvailabilityAsync permet aux développeurs d’case activée pour les mises à jour du package d’application main répertorié dans le fichier .appinstaller. Il permet au développeur de déterminer si les mises à jour sont requises en raison de la stratégie .appinstaller. Cette méthode fonctionne actuellement uniquement pour les applications installées via des fichiers .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)

Retours

PackageUpdateAvailabilityResult qui indique si une application a une mise à jour et si la mise à jour est requise.

Attributs

Configuration requise pour Windows

Famille d’appareils
Windows 10, version 1809 (introduit dans 10.0.17763.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v7.0)

Exemples

Notes

Le référentiel MSIX Labs for Developers contient des exemples supplémentaires sur la modernisation des applications de bureau en tirant parti de MSIX, y compris un exercice utilisant le incorporé . Fonctionnalité AppInstaller.

Un développeur d’applications souhaite avoir un bouton dans son application qui permet à un utilisateur de case activée pour les mises à jour de l’application. Pour permettre à l’application de case activée si une mise à jour est disponible, ils utilisent la CheckUpdateAvailabilityAsync méthode comme indiqué ci-dessous.

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

À partir de l’application, le développeur souhaite case activée pour les mises à jour et démarrer le processus de mise à jour si des mises à jour sont disponibles.

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

Remarques

Si vous essayez d’utiliser cette méthode sur l’objet Package retourné par la propriété Current , cette méthode échoue avec une erreur « Accès refusé ». Il s’agit d’un problème connu qui peut être résolu dans une version ultérieure. L’exemple de cette page montre comment récupérer des informations de mise à jour sur le package de l’application actuelle.

Cette méthode n’est pas prise en charge dans JavaScript. Toutefois, vous pouvez créer un composant Windows Runtime qui appelle cette méthode, puis appeler ce composant à partir d’une application UWP JavaScript. Pour plus d’informations, consultez Problèmes d’API du fichier du programme d’installation d’application.

S’applique à

Voir aussi