Vol*_*idt 11 .net c# nuget .net-core 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"
]
}
}
Run Code Online (Sandbox Code Playgroud)
其中后编译脚本创建了一个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.
Run Code Online (Sandbox Code Playgroud)
这是我不再理解的地方.根据这个,它应该适用于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": {}
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以清理无论是
回答
我解决了它向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": {}
}
}
Run Code Online (Sandbox Code Playgroud)
Bri*_*ing 10
您需要将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你会发现你的DLL lib\netstandard1.6.
由于DOTNET包会自动创建.nuspec从你的project.json,所以你就需要使用适当的框架修复它(例如netstandard1.4).编译不同的框架可能更容易,例如与.NET Platform Standard兼容的Portable配置文件.
| 归档时间: |
|
| 查看次数: |
7412 次 |
| 最近记录: |