以下是我指的是here和here的代码。 btnRequestUpdate_Click可以执行,并且可以正确询问我是否需要下载更新,当我单击“确定”时,我将收到错误消息:“ 0x769e4192(位于appName.exe中)”异常:Microsoft C ++异常: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}");
};
}
我想我知道我以前遇到过什么问题。关键是要区分“打包版本(发行版)”和“未打包版本(调试版)”。我无法通过“未打包版本”升级到“打包版本”。因此,我尝试将应用程序的较高版本和较低版本都发布到商店中,然后可以通过较低版本升级到较高版本。
此外,使用“打包航班”来测试升级比使用“提交”要快得多,因为“打包航班”审核通常只需要半小时。