2017-04-01 29 views
-1

我面臨的問題是,如果我嘗試從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

試圖改變自己的異步無效測試異步任務測試

+0

仍然是同樣的問題: 無法加載文件或程序集'System.Runtime.WindowsRuntime 找到的程序集的清單定義與程序集引用不匹配。 (來自HRESULT的異常:0x80131040)「 – Schwoabaseggele

+0

你可以共享一個repro項目嗎?它對我來說工作正常。你是否也等待正面測試呼叫? –

0

好了... ...

原因是,我切換到VS2017開發的同時,得到了在的的project.json一個錯誤的依賴backgroundtask:

雖然主要項目有:

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

後臺任務獲得:

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

編輯到5.0.0後都去了完美

+0

實際上,依賴關係並沒有錯,你應該更新到最新如果可能,除錯誤修正外,您將獲得新的API。 –

0

不幸的是,我現在卸載VS2015安裝2017年一個,所以我不能用我自己的測試,但某些API都不在後臺提供任務如此測試我將提及的方法:

1-創建一個新類型爲Class Library的解決方案。

2-把你想要的方法。

3-將類庫作爲後臺任務解決方案的參考。

3-打電話給你的方法,這種方法classLib.className.FuncName();

4-如果工作或看不到。