.NET Core应用程序中的.NETStandard Library 1.6.0依赖项

时间:2017-04-13 22:53:58

标签: c# .net asp.net-core

使用Visual Studio 2015 ASP.NET Core应用程序使用类库 ASP.NET Core应用程序和类库在项目创建时具有.NET Framework 4.5.2平台 类库具有.NETStandard Library 1.6.0依赖性 此应用程序是否将在.NET Core目标运行时启动,或者它将需要完整的.NET Framework?

以下是一些快照

solution explorer of .net core class library

project.json of .net core class library

3 个答案:

答案 0 :(得分:1)

根据here .NET Core 1.0实现.NET Standard 1.6。

是的,您的.NET Standard 1.6库与.NET Core应用程序兼容。然而,.NET 4.5.2应用程序可以使用它,因为还没有.NET框架版本实现1.6。

答案 1 :(得分:1)

根据您附带的屏幕截图,您的类库将仅与.NET Core兼容,并且不需要.NET Framework。

顺便说一下,理解 NETStandard.Library ,NuGet包和“.NET Standard”(目标框架)之间的区别非常重要。

简而言之:

.NET Standard ,目标框架,是API规范。仅针对netstandard1.6的项目尚不是.NET Core应用程序。这是一个非常有用的类比:https://gist.github.com/davidfowl/8939f305567e1755412d6dc0b8baf1b7

NETStandard.Library 是一个包https://www.nuget.org/packages/NETStandard.Library/1.6.0。这实际上是一个元数据包,即它包含许多其他软件包,如System.Collections.Generic和System.Console。这些为C#编译器提供了有关.NET Standard(API规范)中的内容的信息,以便它知道您可以使用哪些API。这意味着可以将“NETStandard.Library v1.6.0”添加为不仅仅是.NET Standard 1.6的依赖项。

此外,仅供参考 - 如果您使用Visual Studio 2017和csproj而不是project.json,则无需在项目文件中列出NETStandard.Library。它可以自动使用。

答案 2 :(得分:1)

要解决此问题,我对NetStandard 1.6.1项目class Foo<T> { model: T } class Bar<T>{ model: T } const example3: typeof Foo = Bar; // Okay 执行了以下操作:

csproj