我有一个包含以下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"
]
}
}
在这里postcompile脚本创建了一个nuget package,我将其作为自定义源添加到VS中,按照这些说明操作。 这是因为我想从Windows Universal应用程序引用它,否则(目前)无法实现,参见此问题。 但当我尝试时,我收到以下消息:
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进行目标定位,但这并没有改变什么。更加令人困惑的是,如果我将依赖项和目标框架版本同时降级到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引用.Net Core库或
- 在我的具体情况下发生了什么?
答案:
我通过以下方式向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": {}
}
}