【问题标题】:backgroundTaskHost.exe exits with code 1 (0x1)backgroundTaskHost.exe 以代码 1 (0x1) 退出
【发布时间】:2023-03-09 11:51:02
【问题描述】:
我正在创建一个 Windows 应用商店应用程序,它有一个用于后台任务的 Windows 运行时组件。
该解决方案在 Visual Studio 中构建没有问题,但当触发后台任务时,它总是失败并显示消息“程序 '[4204] backgroundTaskHost.exe' 已退出,代码为 1 (0x1)。”
包含后台任务的项目的引用在主项目中,我正在设置入口点,所以不知道是什么问题。如何获得有关程序退出原因的更多信息?
【问题讨论】:
标签:
c#
visual-studio-2013
windows-runtime
background-process
【解决方案1】:
我正在调用一个返回 void 的异步方法。我更改了该方法以返回一个任务,并在调用它时使用了等待。任务现在可以正常运行了。
【解决方案2】:
在我的情况下,问题在于 Windows 运行时组件的目标版本不正确。然后我将其更改为 UWP 项目的版本,即 10240。
【解决方案3】:
我的命名空间在我的入口点上是错误的。命名空间是“App.BackgroundServices”,任务是“ToastBackgroundTask”。我应该有App.BackgroundServices.ToastBackgroundTask,但我只有BackgroundServices.ToastBackgroundTask。
【解决方案4】:
我找到了这个post
建议检查项目的属性并将输出类型(如果有)从“类库”更改为“Windows 运行时组件”。
【解决方案5】:
我遇到过(并且遇到过)同样的问题,但我确实在启动模拟器后第一次运行我的应用程序时才注意到我的代码运行,但 backgroundtask 也以 1 退出。
我的解决方案是每次启动应用程序时,我都会取消注册并重新注册任务:
var task = BackgroundTaskRegistration.AllTasks.SingleOrDefault(i => i.Value.Name == "PushBackgroundTask");
task.Value.Unregister(true);
RegisterBackgroundTask();
这允许我的代码每次都执行,但是 backgroudTask 总是以 1 退出。
我找到了这个链接“how to debug backgroundtask”,但直到现在我还没有找到问题所在
【解决方案6】:
尝试从 windows 运行时项目的 bin 和 obj 文件夹中删除所有内容,然后在 Visual Studio 中重建项目。它可能会解决您的问题。