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 файлов установщика приложений.