目前我正在将一个asp web api移植到.Net Core。
api使用一个Class库,它提供了ActionFilterAttribute类的一些实现。
所以我也必须移植这个类库。 当我尝试将nuget包Microsoft.AspNetCore.All添加到类库时,我收到了此错误:
包Microsoft.AspNetCore.All 2.0.0与。不兼容 netstandard2.0
当我将目标框架更改为netcoreapp2.0时,我可以安装该软件包,但当然我需要这个目标类型的入口点。
如何创建可以使用Microsoft.AspNetCore.All包的netcore类库
问候
答案 0 :(得分:10)
元数据包Microsoft.AspNetCore.All
仅适用于.NETCoreApp。这是by design,因为它明确地定位为在.NET Core上运行的Web应用程序的便利包。为了在发布时发挥其神奇功能(剥离未使用的依赖项),它需要.NET Core运行时存储,该存储仅适用于.NET Core本身。
所有其他项目,包括在.NET Standard上运行的库项目,但也包括在完整.NET Framework上运行的所有项目,都应该使用单独的包引用。
因此,您可以参考例如Microsoft.AspNetCore.All
,而不是引用ActionFilterAttribute
。 Microsoft.AspNetCore
或Microsoft.AspNetCore.Mvc
获取reduce
。
答案 1 :(得分:6)
你不能(技术上你可以通过NuGet Fallback,但你不应该因为它可能会影响你的可移植性),你不应该。
.All
包是一个便利的元包,所以即使是最简单的ASP.NET核心项目也不需要引用十几个或其他程序集。
它的目标是.NET Core,因此您无法在.NET Standard中使用它。
发布应用程序时,将删除未使用的软件包。在执行类库时,您不希望依赖于所有内容,只需要依赖项目所需的包。