如何调试 UWP UpdateTask?

How to debug a UWP UpdateTask?

在我的 UWP 应用程序中,如何通过 UpdateTask 中的代码进行调试? VS 2017 中的“生命周期事件”下拉菜单似乎没有提供触发此类后台任务的选项。有办法实现吗?

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

a) 在 appx 清单中声明 UpdateTask:

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

b) 添加一个 Windows 运行时组件,以匹配 EntryPoint 声明的类型实现任务,并从您的应用程序项目中引用该组件。

在调试更新程序之前,请先确保已部署应用程序的初始版本。然后像这样更改项目属性中的调试设置:

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

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

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

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

谢谢, Stefan Wick – Windows 开发者平台