[英]Cannot reference .NET Core library from UWP
我有一個帶有以下project.json的.NET Core庫 :
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.0"
},
"frameworks": {
"netstandard1.6": { }
},
"scripts": {
"postcompile": [
"dotnet pack --no-build --configuration Release",
"xcopy bin\\Release ..\\..\\lib\\ /Y"
]
}
}
其中后編譯腳本創建了一個nuget包 ,我按照這些說明在VS中添加了自定義Feed。 這是因為我想從Windows通用應用程序中引用它 ,根據這個問題 ,它不能(否)。 但是當我嘗試它時,我得到這樣的信息:
Package AEther 1.0.0 is not compatible with uap10.0 (UAP,Version=v10.0).
Package AEther 1.0.0 supports: netstandard1.6 (.NETStandard,Version=v1.6)
One or more packages are incompatible with UAP,Version=v10.0.
這是我不再理解的地方。 根據這個 ,它應該適用於netstandard> = 1.6.0,而這個官方表說我需要目標netstandard <= 1.4.0,但這不會改變任何東西。 更令人困惑的是,如果我將netstandard(依賴項和目標框架)的兩個版本降級到1.5,我仍然會得到完全相同的錯誤而不在我的任何文件中指定1.6。
更新 UWP project.json看起來像這樣
{
"dependencies": {
"Microsoft.NETCore.UniversalWindowsPlatform": "5.2.1"
},
"frameworks": {
"uap10.0": {}
},
"runtimes": {
"win10-arm": {},
"win10-arm-aot": {},
"win10-x86": {},
"win10-x86-aot": {},
"win10-x64": {},
"win10-x64-aot": {}
}
}
有人可以清理
回答
我解決了它向UWP應用程序添加導入,如下所示:
{
"dependencies": {
"Microsoft.NETCore.UniversalWindowsPlatform": "5.2.1"
},
"frameworks": {
"uap10.0": { import [ "netstandard1.6" ] }
},
"runtimes": {
"win10-arm": {},
"win10-arm-aot": {},
"win10-x86": {},
"win10-x86-aot": {},
"win10-x64": {},
"win10-x64-aot": {}
}
}
您需要將Microsoft.NETCore.UniversalWindowsPlatform升級到5.2.1
7月15日更新
好的,這是我的結果
更新project.json,導入“netstandard1.6”
{ "dependencies": { "Microsoft.NETCore.UniversalWindowsPlatform": "5.2.2", "Test": "1.0.0" }, "frameworks": { "uap10.0": { "imports": [ "netstandard1.6" ] } }, "runtimes": { "win10-arm": {}, "win10-arm-aot": {}, "win10-x86": {}, "win10-x86-aot": {}, "win10-x64": {}, "win10-x64-aot": {} } }
創建一個新的dotnet核心庫
這是我不再理解的地方。 根據這個,它應該適用於netstandard> = 1.6.0,而這個官方表說我需要目標netstandard <= 1.4.0,但這不會改變任何東西。 更令人困惑的是,如果我將netstandard(依賴項和目標框架)的兩個版本降級到1.5,我仍然會得到完全相同的錯誤而不在我的任何文件中指定1.6。
通用Windows平台映射到netstandard1.4 - 既不是1.6也不是1.5。 因此,您的庫(我稱之為AEther
)的要求比您的UWP應用程序要高。
- 如何從UWP中引用.Net核心庫或者
如您在鏈接的SO問題中所述,Visual Studio中尚不支持此問題 。
我只能猜測它與CLI的支持有關,這是一個懸而未決的問題 。 截至今天,預計將在Microsoft.NETCore.UniversalWindowsPlatform
元數據包的5.3版本中修復 - 盡管之前預計將在5.2.2中修復。
- 在我的具體案例中發生了什么?
NuGet告訴您,您的軟件包僅支持netstandard1.6
目標框架,但不支持uap10.0
。 實際上,如果您解壓縮.nupkg
您將在lib\\netstandard1.6
下找到您的DLL。
由於dotnet pack會自動從project.json
創建.nuspec
,因此您需要使用適當的框架(例如netstandard1.4
)進行修復。 編譯不同的框架可能更容易,例如與.NET Platform Standard兼容的Portable配置文件 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.