Package.CheckUpdateAvailabilityAsync Método

Definición

El método *CheckUpdateAvailabilityAsync permite a los desarrolladores comprobar si hay actualizaciones en el paquete de aplicación principal que se muestra en el archivo .appinstaller. Permite al desarrollador determinar si las actualizaciones son necesarias debido a la directiva .appinstaller. Actualmente, este método solo funciona para las aplicaciones instaladas a través de archivos .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)

Devoluciones

PackageUpdateAvailabilityResult que indica si una aplicación tiene una actualización y si es necesaria la actualización.

Atributos

Requisitos de Windows

Familia de dispositivos
Windows 10, version 1809 (se introdujo en la versión 10.0.17763.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v7.0)

Ejemplos

Nota:

El repositorio MSIX Labs for Developers contiene ejemplos adicionales sobre la modernización de aplicaciones de escritorio aprovechando MSIX, incluido un ejercicio con el insertado . Característica AppInstaller.

Un desarrollador de aplicaciones quiere tener un botón en su aplicación que permita a un usuario comprobar si hay actualizaciones de aplicaciones. Para permitir que la aplicación compruebe si hay disponible una actualización, use el CheckUpdateAvailabilityAsync método como se muestra a continuación.

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

Desde dentro de la aplicación, el desarrollador quiere buscar actualizaciones e iniciar el proceso de actualización si hay actualizaciones 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;
    }
}

Comentarios

Si intenta usar este método en el objeto Package devuelto por la propiedad Current , este método producirá un error "Acceso denegado". Se trata de un problema conocido que puede corregirse en una versión futura. En el ejemplo de esta página se muestra cómo recuperar información de actualización sobre el paquete de la aplicación actual.

Este método no se admite en JavaScript. Sin embargo, puedes crear un componente de Windows Runtime que llame a este método y, a continuación, llamar a este componente desde una aplicación para UWP de JavaScript. Para obtener más información, consulte Problemas de api de archivos del instalador de aplicaciones.

Se aplica a

Consulte también