2017-09-11 43 views
4

目前我正在向.Net Core移植一个asp web api。在netstandard中使用Microsoft.AspNetCore.All包

api使用提供ActionFilterAttribute类的一些实现的类库。

所以我也必须移植这个类库。 当我试图在NuGet包Microsoft.AspNetCore.All添加到类库我recived此错误:

Package Microsoft.AspNetCore.All 2.0.0 is not compatible with netstandard2.0

当我改变目标框架netcoreapp2.0,我能够安装包,但当然,我需要这个目标类型的入口点。

我如何创建磊类库可以使用Microsoft.AspNetCore.All包

问候

回答

4

你不能(以及技术上你可以通过的NuGet回退,但你不应该为它可能会影响你的便携性),你不应该这样做。

.All包是一个方便的元包,所以即使是最简单的ASP.NET Core Project也不需要引用十二个或其他程序集。

它的目标是.NET Core,所以你不能在.NET标准中使用它。

当您发布您的应用程序时,未使用的软件包将被剥离。在做类库时,你不需要依赖于所有东西,而只需要项目所需的包。

2

metapackage Microsoft.AspNetCore.All仅适用于.NETCoreApp。这是by design,因为它明确定位为.NET Core上运行的Web应用程序的便利包。为了在发布时间发挥它的魔力(剥离未使用的依赖项),它需要.NET Core运行时存储,它仅适用于.NET Core本身。

所有其他项目(包括在.NET标准上运行的库项目,但也包括在完整的.NET Framework上运行的所有项目)都应该使用单独的包引用。

因此,您不需要引用Microsoft.AspNetCore.All,而是引用例如Microsoft.AspNetCoreMicrosoft.AspNetCore.Mvc以获得您的ActionFilterAttribute

相关问题