At the moment I\'m porting an asp web api to .Net Core.
The api uses a Class library which provides some implementations of the ActionFilterAttribute class.
The metapackage Microsoft.AspNetCore.All is only available for .NETCoreApp. This is by design since its explictly targeted as a convenience package for web applications running on .NET Core. In order to work its magic at publishing time (stripping of unused dependencies), it requires the .NET Core runtime store which is only available for .NET Core itself.
All other projects, including library projects running on .NET Standard but also including all projects that run on the full .NET Framework, should use individual package references instead.
So instead of referencing Microsoft.AspNetCore.All
, you would be referencing e.g. Microsoft.AspNetCore, or Microsoft.AspNetCore.Mvc to get your ActionFilterAttribute
.
You can't (well technically you could via NuGet Fallback, but you shouldn't as it may affect your portability) and you shouldn't.
The .All
package is a convenience meta-package, so you don't need to reference a dozen or other assemblies for even the simplest ASP.NET Core Project.
It's targeting .NET Core for a reason, so you can't use it in .NET Standard.
When you publish your application, the unused packages will be stripped off. When doing a class library you don't want dependency on everything but only the packages which are required by your project.