MSIX CLI中StoreContext.GetAppLicenseAsync()误判有效订阅为无效
问题:Microsoft Store订阅附加组件许可证检查错误返回false
我正在用C#构建一个WinRT CLI包装器,用于检查用户是否拥有有效的Microsoft Store订阅附加组件。该CLI会被Electron + React.js应用通过命令行参数调用,最终根据许可证状态返回true或false。
具体问题
即便登录用户确实拥有该附加组件的有效订阅,执行CheckSubscription <AddonId>命令时仍错误返回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()却返回订阅许可证无效或缺失?
已完成的操作
- MSIX打包的CLI应用(支持Windows 10+),已被应用成功调用
- 已发布至Microsoft Store(测试后已下架)
- 使用
StoreContext.GetAppLicenseAsync()方法 - 订阅附加组件已发布且可测试
- 附加组件ID可通过API正确解析
内容的提问来源于stack exchange,提问作者FeedFall8
相关产品推荐
相关产品推荐

