uwp - 如何调试 UWP UpdateTask?

标签 uwp background-task

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

最佳答案

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

a) 在 appx list 中声明 UpdateTask:

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

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

enter image description here

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

enter image description here

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

enter image description here

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

enter image description here

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

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

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

关于uwp - 如何调试 UWP UpdateTask?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43059456/

相关文章:

ios - 多个长时间运行的后台任务

ios - 当用户手动关闭 react-native-ios 应用程序时如何运行一些代码?

java - 在类方法中设置要在后台(异步)任务类(Java/Android)中访问的变量

c++ - 获取系统信息 UWP

c# - Windows 10 移动应用程序扩展执行不断被拒绝

windows - 为新添加的 Listview 项目添加颜色过渡

javascript - 除了react-native-background-task之外,还有什么方法可以在React Native中执行后台任务吗?

sqlite - 当为UWP使用Scaffold-DbContext时,出现“无法加载DLL'sqlite3'”

c# - FileOpenPicker - 如何读取特殊字符

ios - 为什么即使应用程序已移至后台,日志记录 backgroundTimeRemaining 也会显示错误/大数字?