【发布时间】:2020-08-13 23:04:29
【问题描述】:
以下是我参考here和here的代码。 btnRequestUpdate_Click 可以执行,可以正确询问我是否需要下载更新,当我点击“确定”时,会报错:“0x769e4192 (located in appName.exe) exception: Microsoft C++ exception: winrt: :hresult_error,位于内存位置0x06a8f0a0"
我尝试使用 RequestDownloadStorePackageUpdatesAsync,但得到了同样的错误。
那么我该如何解决这个问题呢?非常感谢。
[ComImport]
[Guid("3E68D4BD-7135-4D10-8018-9FB6D9F33FA1")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IInitializeWithWindow
{
void Initialize(IntPtr hwnd);
}
private async void btnRequestUpdate_Click(object sender, RoutedEventArgs e)
{
var context = StoreContext.GetDefault();
IInitializeWithWindow initWindow = (IInitializeWithWindow)(object)context;
initWindow.Initialize(System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle);
IReadOnlyList<StorePackageUpdate> storePackageUpdates =
await context.GetAppAndOptionalStorePackageUpdatesAsync();
if (storePackageUpdates.Count == 0) return;
IAsyncOperationWithProgress<StorePackageUpdateResult, StorePackageUpdateStatus> downloadOperation =
context.RequestDownloadAndInstallStorePackageUpdatesAsync(storePackageUpdates);
downloadOperation.Progress = (asyncInfo, progress) =>
{
Consolo.WriteLine($"progress: {progress}");
};
}
【问题讨论】:
-
那么,您的应用已经发布到商店了吧?
-
请查看document。
RequestDownloadStorePackageUpdatesAsync方法会显示一个 UI 对话框,需要在 UI 线程中调用。 -
@NicoZhu-MSFT 感谢您的回复。该应用程序已发布到商店,我还确保此方法在 UI 线程上运行。同时代码可以显示一个UI对话框,但问题是当我点击“确定”时会报错。
-
呃,我没有测试这个问题的环境,能不能给我们分享一个小样本?
-
请不要在这里分享敏感信息。
标签: uwp desktop-bridge