UWP - BackgroundTask和ContactManager

UWP - BackgroundTask和ContactManager

问题描述:

我面临的问题是,如果我尝试从BackgroundTask访问ContactManager,则会收到System.IO.FileLoadException。UWP - BackgroundTask和ContactManager

public async void Run(IBackgroundTaskInstance taskInstance) 
    { 
     BackgroundTaskDeferral deferral = taskInstance.GetDeferral(); 
     test(); 
     deferral.Complete(); 

    } 

    private async void test() 
    { 
     ContactStore contactStore = await ContactManager.RequestStoreAsync(); 
    } 

的BackgroundTasks正常启动,但只要我称之为“测试”抛出异常:从我的主要应用程序中调用它的时候

相同的代码工作得很好。

试图改变自己的异步无效测试异步任务测试

+0

仍然是同样的问题: 无法加载文件或程序集'System.Runtime.WindowsRuntime 找到的程序集的清单定义与程序集引用不匹配。 (来自HRESULT的异常:0x80131040)“ – Schwoabaseggele

+0

你可以共享一个repro项目吗?它对我来说工作正常。你是否也等待正面测试呼叫? –

好了... ...

原因是,我切换到VS2017开发的同时,得到了在的的project.json一个错误的依赖backgroundtask:

虽然主要项目有:

"dependencies": { "Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0" },

后台任务获得:

"dependencies": { "Microsoft.NETCore.UniversalWindowsPlatform": "5.2.2" },

编辑到5.0.0后都去了完美

+0

实际上,依赖关系并没有错,你应该更新到最新如果可能,除错误修正外,您将获得新的API。 –

不幸的是,我现在卸载VS2015安装2017年一个,所以我不能用我自己的测试,但某些API都不在后台提供任务如此测试我将提及的方法:

1-创建一个新类型为Class Library的解决方案。

2-把你想要的方法。

3-将类库作为后台任务解决方案的参考。

3-打电话给你的方法,这种方法classLib.className.FuncName();

4-如果工作或看不到。