为什么我不能在UWP v6.0.1项目中添加对.NET Core 2.0库的引用?

时间:2017-11-15 17:36:53

标签: .net uwp .net-core .net-native

我的解决方案中有两个.NET Core 2.0项目和一个通用Windows平台版本v6.0.1项目(主要)(两个目标都设置为Build 16299)。当两个.NET Core 2.0项目中的任何一个项目时,我收到一条错误消息"无法添加对项目的引用" xx"。如果它告诉我为什么会好的。

作为测试,我添加了一个新的.NET Standard 2.0库,我能够引用它。根据我的有限理解,.Net Standard 2.0与最新的.Net Core 2.0兼容,因此.NET Core 2.0也不应与UWP 6.0.1兼容吗?当我查看比较.NET标准的图表时,它清楚地表明.NET Standard 2.0和.NET Core 2.0是兼容的。

.Net Standard Versions

如果所有这些都不是令人惊讶的混淆,UWP项目有Microsoft .NETCore包列出.NET Core 2.0:

UWP v6.0.1 Nuget Package  Description enter image description here

此外,虽然未显示,但UWP软件包具有.NETCore,5.0版依赖项!我的印象是.NET Core只在版本2.0:

enter image description here

这里发生了什么?一些澄清会很棒。

ASIDE:微软似乎是一个不连贯的组织,因为这个令人难以置信的令人困惑的.NET架构以及分散且无序的文档。似乎所有不同的部门都在重复工作,而没有更高层次的指导。也许,他们需要一个.NET Czar。

2 个答案:

答案 0 :(得分:0)

.NET Core实现了.NET Standard,但它可能有一些其他地方无法使用的API。您所说的就是说" UWP实施.NET标准,因此我可以在每个.NET标准项目中使用UWP API"那不是真的。

.NET Standard只是所有.NET平台上可用的API的子集。它是PCL的替代品。您可以在使用.NET的每个.NET应用程序/库中使用.NET标准库,该.NET实现特定版本的.NET Standard。


PS:是的,.NET Standard和其他人之间的关系有点令人困惑。还花了我一些时间来理解它。

答案 1 :(得分:0)

查看此页面上的矩阵 - https://docs.microsoft.com/en-us/dotnet/standard/net-standard

在您的示例中,如果您要从UWP项目使用.NET Standard 2.0库,则UWP项目必须将min target设置为16299

enter image description here

同样,netcore 2.0可以使用netstandard 2.0

提供有关您要安装哪个包以及安装到哪个项目的信息。通常,输出窗口会告诉您包安装失败的确切原因。

Restoring packages for C:\Users\karann\Source\Repos\UWPWeatherAppKRN\UWPWeatherAppKRN\UWPWeatherAppKRN.csproj...
NU1202: Package netstandard2_lib 1.0.0 is not compatible with uap10.0.10586 (UAP,Version=v10.0.10586). Package netstandard2_lib 1.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
NU1202: Package netstandard2_lib 1.0.0 is not compatible with uap10.0.10586 (UAP,Version=v10.0.10586) / win10-arm. Package netstandard2_lib 1.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
NU1202: Package netstandard2_lib 1.0.0 is not compatible with uap10.0.10586 (UAP,Version=v10.0.10586) / win10-arm-aot. Package netstandard2_lib 1.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
NU1202: Package netstandard2_lib 1.0.0 is not compatible with uap10.0.10586 (UAP,Version=v10.0.10586) / win10-x64. Package netstandard2_lib 1.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
NU1202: Package netstandard2_lib 1.0.0 is not compatible with uap10.0.10586 (UAP,Version=v10.0.10586) / win10-x64-aot. Package netstandard2_lib 1.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
NU1202: Package netstandard2_lib 1.0.0 is not compatible with uap10.0.10586 (UAP,Version=v10.0.10586) / win10-x86. Package netstandard2_lib 1.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
NU1202: Package netstandard2_lib 1.0.0 is not compatible with uap10.0.10586 (UAP,Version=v10.0.10586) / win10-x86-aot. Package netstandard2_lib 1.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
Package restore failed. Rolling back package changes for 'UWPWeatherAppKRN'.
Time Elapsed: 00:00:01.1049694

搜索NU1202,您将看到此页Errors and warnings