0

对于编写为 Windows 通用应用程序的 LOB 应用程序,我想在安装应用程序时注册一个后台任务,而无需启动它。据我所知,文档将我指向 Package.appxmanifest 中的预安装配置功能,我发现了这个

但是,使用此扩展程序时,后台任务未注册,我也看不到它运行任何东西。

这是我在 Package.appxmanifest 中的预安装配置扩展:

<Extension Category="windows.preInstalledConfigTask" EntryPoint="Foo.BackgroundTasks.DefaultRegistrationBackgroundTask" />

为了验证任务和入口点设置是否正确,我使用更新任务功能注册了它,增加了应用程序版本,再次部署它,后台任务已注册,一切都按预期工作。

这是我在 Package.appxmanifest 中的更新任务扩展:

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

预安装的配置任务是否受到某种限制或需要其他配置?如何调试此类问题?没有断点被击中。

Foo.BackgroundTasks.DefaultRegistrationBackgroundTask 的代码:

public sealed class DefaultRegistrationBackgroundTask : IBackgroundTask
{
    private BackgroundTaskDeferral _backgroundTaskDeferral;
    public void Run(IBackgroundTaskInstance taskInstance)
    {

        // Deferral is required if code uses any async call
        _backgroundTaskDeferral = taskInstance.GetDeferral();

        // Location Services
        BackgroundTaskHelper.RegisterBackgroundTask("Foo.BackgroundTasks.LocationBackgroundTask",
            "Foo.LocationBackgroundTask",
            new SystemTrigger(SystemTriggerType.UserPresent, false),
            null);

        // Referal releases
        _backgroundTaskDeferral.Complete();
    }  
}
4

1 回答 1

1

PreinstalledConfigTask 仅限于预安装的应用程序,即来自 OEM 或 Microsoft 的设备随附的应用程序。对于用户从商店(或通过侧载)获取的应用程序,它不会被触发。

于 2017-08-04T14:47:57.033 回答