Приложение UWP с BackgroundTask больше не будет собираться Ошибка 80080204 - PullRequest
0 голосов
/ 14 июня 2019

У меня есть приложение UWP, которое сейчас не создается.Что странно, у меня есть еще один проект, который очень похож на него, но он просто отлично работает.Фоновая задача не является аудио-задачей.Что вдруг вызывает это?

Ошибка проверки.ошибка 80080204: ошибка проверки манифеста приложения: строка 43, столбец 12, причина: если это не фоновая задача аудио, не разрешается иметь EntryPoint = "App.TokenRefreshBackgroundTask" без ActivatableClassId в windows.activatableClass.inProcessServer.

Targeting build 18362.

Ответы [ 2 ]

1 голос
/ 14 июня 2019

UPDATE

Оказывается, это поведение является намеренным. Асинхронные фоновые задачи не поддерживаются платформой.

-

Старый ответ, для полноты

Оказывается, это ошибка в том, как генерируется AppxManifest во время сборки пакета. Я отправил сообщение об ошибке, чтобы исправить эту проблему, и обновлю эту ветку и заявку сообщества разработчиков, как только у меня появится информация о ее доступности.

На данный момент вы можете обойти эту проблему, вручную указав запись inProcServer в качестве глобального расширения, например:

<Extensions>
  <Extension Category="windows.activatableClass.inProcessServer">
   <InProcessServer>
    <Path>CLRHost.dll</Path>
    <ActivatableClass ActivatableClassId="App.TokenRefreshBackgroundTask" ThreadingModel="both" />
   </InProcessServer>
  </Extension> 
</Extensions>

Где ActivatableClassId должен соответствовать EntryPoint расширения backgroundTasks.

Обратите внимание , что это НЕ тот же блок «Расширения», что и в узле «Приложение». Он живет на уровне «Пакета» как узел узлов «Приложения» и «Возможности».

1 голос
/ 14 июня 2019

Строка 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();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...