如何调试UWP UpdateTask?

如何调试UWP UpdateTask?,uwp,background-task,Uwp,Background Task,在我的UWP应用程序中,如何通过UpdateTask中的代码进行调试?VS 2017中的“生命周期事件”下拉列表似乎没有提供触发此类后台任务的选择。有什么方法可以做到这一点吗?首先是UWP的更新任务上的一些上下文:这是一个后台任务,当UWP收到更新时,您的应用程序可以执行该任务以被系统触发。它在后台进程中从更新的应用程序包运行您的代码,因此您可以处理与特定更新相关的任何维护(例如,数据结构的更改)。要为应用程序设置UpdateTask,您需要做两件事: a) 在appx清单中声明UpdateTa

在我的UWP应用程序中,如何通过UpdateTask中的代码进行调试?VS 2017中的“生命周期事件”下拉列表似乎没有提供触发此类后台任务的选择。有什么方法可以做到这一点吗?

首先是UWP的更新任务上的一些上下文:这是一个后台任务,当UWP收到更新时,您的应用程序可以执行该任务以被系统触发。它在后台进程中从更新的应用程序包运行您的代码,因此您可以处理与特定更新相关的任何维护(例如,数据结构的更改)。要为应用程序设置UpdateTask,您需要做两件事:

a) 在appx清单中声明UpdateTask:

<Extension Category="windows.updateTask" EntryPoint="BackgroundTasks.UpdateTask" />

b) 添加以与入口点声明匹配的类型实现任务的Windows运行时组件,并从应用程序项目中引用该组件

在调试更新过程之前,首先确保已部署应用程序的初始版本。然后更改项目属性中的调试设置,如下所示:

接下来,要确保UpdateTask被触发,请在清单编辑器中增加包的版本号:

现在,当您在VS 2017中点击F5时,您的应用程序将得到更新,系统将在后台激活UpdateTask组件。调试器将自动附加到后台进程。您的断点将被命中,您可以单步执行更新代码逻辑(在我的示例中只是一个土司)

后台任务完成后,您现在还可以在同一调试会话中从应用程序列表启动前台应用程序。调试器将再次自动附加到您的前台进程,您可以单步执行主应用程序逻辑

VS 2015用户注意事项: 上述规定适用于VS 2017。如果您使用的是VS 2015,您可以使用相同的技术来触发和测试UpdateTask,但VS不会附加到它。VS 2015中的另一个过程是设置一个与入口点具有相同UpdateTask的,并直接从前台应用程序触发执行

谢谢,
Stefan Wick–Windows Developer Platform

是否可以为此使用单个流程模型后台任务?(因此没有Windows运行时组件)不,这目前是不可能的。UpdateTask需要两个进程模型,这意味着该任务需要在Windows运行时组件中实现。遗憾的是,这不起作用,系统会在附加调试器之前启动该任务,就在部署新包时。在VS2017、UWP 15063桌面应用程序上测试。