StoreContext.GetAppLicenseAsync() возвращает false для активной подписки в MSIX CLI.C#

Место общения программистов C#
Anonymous
StoreContext.GetAppLicenseAsync() возвращает false для активной подписки в MSIX CLI.

Сообщение Anonymous »

Я создаю оболочку WinRT CLI на C#, которая проверяет, есть ли у пользователя активная надстройка подписки Microsoft Store. Этот интерфейс командной строки вызывается из приложения Electron + React.js с использованием аргументов командной строки и возвращает true или false в зависимости от статуса лицензии.
Проблема
Команда CheckSubscription неправильно возвращает false, даже если вошедший в систему пользователь имеет активную подписку на надстройку.
Ниже приведен фрагмент кода

Код: Выделить всё

private static async Task HandleCheckSubscriptionCommand(string[] args)
{
string addonId = args[1];
var context = StoreContext.GetDefault();
var license = await context.GetAppLicenseAsync();

foreach (var kvp in license.AddOnLicenses)
{
var addOnLicense = kvp.Value;
if (addOnLicense.SkuStoreId.Equals(addonId, StringComparison.OrdinalIgnoreCase))
{
bool isValid = addOnLicense.IsActive && addOnLicense.ExpirationDate > DateTimeOffset.UtcNow;
Console.WriteLine(isValid ? "true" : "false");
return;
}
}

Console.WriteLine("false");
}
Что может привести к тому, что GetAppLicenseAsync() вернет лицензию на подписку как неактивную или отсутствующую, даже если пользователь приобрел ее через Магазин?
Я также сделал следующее:
  • Приложение CLI в пакете MSIX (Windows 10+), оболочка включена и успешно запускается приложением
  • Опубликовано в Microsoft Store (исключено из списка для тестирования)
  • Использование StoreContext.GetAppLicenseAsync()
  • Дополнение подписки опубликовано и доступно для тестирования
  • Идентификатор дополнения правильно разрешается через API


Подробнее здесь: https://stackoverflow.com/questions/796 ... on-in-msix

Вернуться в «C#»