具有BackgroundTask的UWP App将不再生成错误80080204

时间:2019-06-14 02:00:54

标签: c# visual-studio uwp

我有一个UWP应用,现在似乎无法构建。奇怪的是,我有另一个与此项目非常相似的项目,但它的构建很好。后台任务不是音频bg任务。是什么突然造成的?

  

验证错误。错误80080204:应用清单验证错误:行   43,第12列,原因:如果不是音频后台任务,则为   不允许具有EntryPoint =“ App.TokenRefreshBackgroundTask”   没有ActivatableClassId   windows.activatableClass.inProcessServer。

定位版本18362。

3 个答案:

答案 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 项目中的引用时,我也遇到了这个错误。