Package.CheckUpdateAvailabilityAsync Methode

Definition

Mit der *CheckUpdateAvailabilityAsync -Methode können Entwickler nach Updates für das in der Appinstaller-Datei aufgeführte Standard App-Paket suchen. Dadurch kann der Entwickler ermitteln, ob die Updates aufgrund der Appinstaller-Richtlinie erforderlich sind. Diese Methode funktioniert derzeit nur für Anwendungen, die über .appinstaller-Dateien installiert werden.

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)

Gibt zurück

Ein PackageUpdateAvailabilityResult , das angibt, ob eine Anwendung über ein Update verfügt und ob das Update erforderlich ist.

Attribute

Windows-Anforderungen

Gerätefamilie
Windows 10, version 1809 (eingeführt in 10.0.17763.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v7.0)

Beispiele

Hinweis

Das Repository MSIX Labs for Developers enthält zusätzliche Beispiele zum Modernisieren von Desktop-Apps durch Nutzung von MSIX, einschließlich einer Übung mit dem eingebetteten . AppInstaller-Funktion.

Ein App-Entwickler möchte eine Schaltfläche in seiner App haben, die es einem Benutzer ermöglicht, nach App-Updates zu suchen. Damit die App überprüfen kann, ob ein Update verfügbar ist, verwenden sie die CheckUpdateAvailabilityAsync -Methode wie unten gezeigt.

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

In der App möchte der Entwickler nach Updates suchen und den Aktualisierungsprozess starten, wenn Updates verfügbar sind.

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

Hinweise

Wenn Sie versuchen, diese Methode für das Package-Objekt zu verwenden, das von der Current-Eigenschaft zurückgegeben wird, schlägt diese Methode mit dem Fehler "Zugriff verweigert" fehl. Dies ist ein bekanntes Problem, das möglicherweise in einer zukünftigen Version behoben werden kann. Das Beispiel auf dieser Seite zeigt, wie Updateinformationen zum aktuellen App-Paket abgerufen werden.

Diese Methode wird in JavaScript nicht unterstützt. Sie können jedoch eine Windows-Runtime Komponente erstellen, die diese Methode aufruft, und dann diese Komponente aus einer JavaScript-UWP-App aufrufen. Weitere Informationen finden Sie unter Probleme mit der App Installer-Datei-API.

Gilt für:

Weitere Informationen