Поделиться через


Package.CheckUpdateAvailabilityAsync Метод

Определение

Метод *CheckUpdateAvailabilityAsync позволяет разработчикам проверка обновления пакета приложения main, указанного в файле APPINSTALLER. Это позволяет разработчику определить, требуются ли обновления из-за политики .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 Labs for Developers содержит дополнительные примеры модернизации классических приложений с помощью преимуществ 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;
    }
}

Комментарии

При попытке использовать этот метод для объекта Package , возвращаемого свойством Current , этот метод завершится ошибкой "Доступ запрещен". Это известная проблема, которая может быть исправлена в будущем выпуске. В примере на этой странице показано, как получить сведения об обновлении пакета текущего приложения.

Этот метод не поддерживается в JavaScript. Однако можно создать компонент среда выполнения Windows, который вызывает этот метод, а затем вызвать этот компонент из приложения JavaScript UWP. Дополнительные сведения см. в статье Проблемы с API файлов установщика приложений.

Применяется к

См. также раздел