2017-01-18 120 views
0

我想要編譯UWP C#解決方案樹莓派2 這裏是project.json的Windows 10物聯網ARM(樹莓派)的System.Threading - 缺少引用

{ 
"dependencies": { 
    "Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0", 
}, 
"frameworks": { 
    "uap10.0": { 
    "imports": [ 
    ] 
    } 
}, 
"runtimes": { 
    "win10-arm": {}, 
    "win10-arm-aot": {}, 
    "win10-x86": {}, 
    "win10-x86-aot": {}, 
    "win10-x64": {}, 
    "win10-x64-aot": {} 
    } 
} 

的問題是im引用(通過dll,我不能通過對項目的正常引用添加它)到另一個項目,該項目使用System.Threading進行某些線程操作。這裏是project.json

{ 
"version": "1.0.0-*", 

"dependencies": { 
    "ELMSDefinitionsCore": "1.0.0-*", 
    "NETStandard.Library": "1.6.1", 
    "System.ComponentModel.Primitives": "4.2.0", 
    "System.Xml.XmlSerializer": "4.2.0", 
    "UniversalSerialPort": "1.0.0-*", 
    "System.Security.Cryptography.Algorithms": "4.0.0", 
    "System.Threading.Thread": "4.3.0" 
}, 

"frameworks": { 
    "netcoreapp1.1": 
{ 
    "imports": "dnxcore50", 
    "dependencies": 
    { 
     "Microsoft.NETCore.App": 
    { 
     "type": "platform", 
     "version": "1.1.0" 
     } 
    } 
}, 
"netstandard1.4": 
{ 
     "imports": "dnxcore50" 
}, 

"net462": { 
    "dependencies": { 
    } 
} 
} 
} 

編譯時,我得到多次警告像這樣的:

C:\ Program Files文件(x86)的\的MSBuild \ Microsoft.NetNative \ ARM \ ILC \ IlcInternals.targets(936,5):警告:ILTransform_0003:由於缺少方法'ThreadStart..ctor(object,IntPtr)',方法'GroupSelect.StartGroupLoop(byte [])'將始終引發異常。可能有一個組件缺失。

所有的警告都是關於引用的庫。

我試圖從這個主題的解決方案,但沒有任何幫助: Can't find System.Threading 4.0.10 on Raspberry Pi on Windows 10 IoT

+0

與OP沒有直接關係。您是否故意不考慮ARMv8? – InfinitelyManic

+0

你爲什麼問?我使用樹莓派2(ARMv7),因爲我有它的股票。 –

+0

我問,因爲我看到x64;所以我認爲更大的想法是跨越幾個拱門進行編譯。 – InfinitelyManic

回答

0

我解決了問題。

首先 - 由UWP項目引用的每個項目它的好,有UWP配置(例如它):

"uap10.0": { 
     "imports": "dnxcore50", 
       "runtimes": { 
     "win10-arm": {}, 
     "win10-arm-aot": {}, 
     "win10-x86": {}, 
     "win10-x86-aot": {}, 
     "win10-x64": {}, 
     "win10-x64-aot": {} 
     }, 
     "dependencies": {"System.Threading.Thread": "4.0.10.0" } 
} 

第二件事 - 你不能在UWP應用程序中使用線程。您必須將您的線程重寫爲異步,等待並使用任務代替。