我有一个UWP应用,现在似乎无法构建。奇怪的是,我有另一个与此项目非常相似的项目,但它的构建很好。后台任务不是音频bg任务。是什么突然造成的?
验证错误。错误80080204:应用清单验证错误:行 43,第12列,原因:如果不是音频后台任务,则为 不允许具有EntryPoint =“ App.TokenRefreshBackgroundTask” 没有ActivatableClassId windows.activatableClass.inProcessServer。
定位版本18362。
答案 0 :(得分:1)
第public void Run(IBackgroundTaskInstance taskInstance)
行不能为async
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Windows.ApplicationModel.Background;
namespace BackgroundTask
{
public sealed class TokenRefreshBackgroundTask : IBackgroundTask
{
public void Run(IBackgroundTaskInstance taskInstance)
{
throw new NotImplementedException();
}
}
}
答案 1 :(得分:1)
更新
事实证明,此行为是设计使然。该平台不支持“异步”后台任务。
-
旧答案,以确保完整性
事实证明,这是打包构建期间如何生成AppxManifest的错误。 我已提交了一个错误来解决此问题,一旦我对其可用性进行了更新,便会更新该线程和开发者社区故障单。
现在,您可以通过手动将inProcServer条目指定为全局扩展来解决此问题,如下所示:
<Extensions>
<Extension Category="windows.activatableClass.inProcessServer">
<InProcessServer>
<Path>CLRHost.dll</Path>
<ActivatableClass ActivatableClassId="App.TokenRefreshBackgroundTask" ThreadingModel="both" />
</InProcessServer>
</Extension>
</Extensions>
其中ActivatableClassId必须与backgroundTasks扩展的EntryPoint相匹配。
注意,这与“ Application”节点下的“ Extensions”块不同。这个作为“应用程序”和“功能”节点的对等节点位于“包”级别。
答案 2 :(得分:0)
当我忘记添加实现 IBackgroundTask 类的 RunTimeComponent 项目作为 UWP 项目中的引用时,我也遇到了这个错误。