netstandard和netcoreapp的不同版本如何兼容?

时间:2018-08-14 07:47:03

标签: asp.net-core .net-core .net-standard

我正在努力寻找任何可以回答以下问题的官方博客文章或文档:

  1. 如果我有一个netstandard2.0库,是否可以依赖仅针对netstandard1.x的库?
    • netstandard1.x和netstandard2.0之间的主要版本更改是否表示不兼容?
  2. 如果我有一个针对netstandard2.0的库,该库依赖于ASP.NET Core 2.0.x包(例如Http.Abstractions),那么我可以从netcoreapp2.1应用程序中使用该库吗?
    • 如何解决对Http.Abstractions的依赖?整个netcoreapp2.1应用程序会降级吗?
    • 即使从理论上讲这是可行的,微软是否也支持这种情况?
  3. netstandard2.0库是否应该依赖ASP.NET Core 2.1.x NuGet包?

非常感谢!

1 个答案:

答案 0 :(得分:2)

.NET Standard是合同。由.NET Core,Mono实现。 .NET Framework等。

例如,.NET Core 1.0 as per the docs支持任何.NET Standard 1.x,而.NET Core 2.0支持.NET Standard 2.0

  

如果我有一个netstandard2.0库,是否可以依赖仅针对netstandard1.x的库?

。较高版本的.NET Standard可能取决于较低版本。与较高版本的net4x或netcoreapp相同,可能取决于较低版本。它们是API的超级集。

  

如果我有一个针对netstandard2.0的库,该库依赖于ASP.NET Core 2.0.x包(例如Http.Abstractions),那么我可以从netcoreapp2.1应用程序中使用该库吗?

。那是因为Http.Abstractions也是针对.NET Standard而不是.NET Core(netcoreapp)。这就是为什么ASP.NET Core可以与完整框架一起使用的原因(通常会造成混乱)。

  

netstandard2.0库应该/是否可以依赖ASP.NET Core 2.1.x NuGet包?

。 .NET Standard不支持.NET Core。因此,仅针对.NET Standard的库不能依赖于.NET Core