什么是C#Asp.net Core中的Metapackage?
众所周知,Microsoft.AspNetCore软件包是添加到许多ASP.NETCore模板中的软件包之一。
当打开一个新的ASP.NETCore项目时,Microsoft.AspNetCore程序包将作为常规项目依赖项之一被重复包含。它提供了许多重要的软件包来定位基本的ASP.NETCore应用程序。
尽管此程序包不包含任何实际的dll或代码本身,但仅包含对其他程序包的一系列依赖关系。通过将此软件包添加到项目中,您可以引入所有相关的软件包以及它所依赖的dll,这些软件包称为元软件包。
具体来说,它列出的软件包是-
Microsoft.AspNetCore.Diagnostics Microsoft.AspNetCore.Hosting Microsoft.AspNetCore.Routing Microsoft.AspNetCore.Server.IISIntegration Microsoft.AspNetCore.Server.Kestrel Microsoft.Extensions.Configuration.EnvironmentVariables Microsoft.Extensions.Configuration.FileExtensions Microsoft.Extensions.Configuration.Json Microsoft.Extensions.Logging Microsoft.Extensions.Logging.Console Microsoft.Extensions.Options.ConfigurationExtensions NETStandard.Library
您将收到的这些程序包的版本取决于您安装的Microsoft.AspNetCore程序包的版本。
这些依赖项提供了用于设置使用ASP.NETCore服务器的主要基本库,该ASP.NETCore服务器使用KestrelWeb服务器并包括IIS集成。
就应用程序本身而言,仅借助此软件包,您就可以将应用程序设置和环境变量加载到配置中,使用IOptions界面,并配置到控制台的日志记录。
对于中间件,仅包含Microsoft.AspNetCore.Diagnostics程序包,这将允许添加中间件,例如ExceptionHandlerMiddleware,DeveloperExceptionPageMiddleware和StatusCodePagesMiddleware。
要完成一个应用程序,我们不能仅使用Metapackage,因为它没有提供足够的控件,但是我们可以使用Microsoft.AspNetCore.Mvc或Microsoft.AspNetCore.MvcCore软件包向我们的应用程序添加MVC功能,并且还需要一些其他软件包。
元软件包只是尝试使用可以应用于许多应用程序的许多软件包,因此我们不需要加载更多的依赖项,但实际上并不需要这样做,因为它也需要其他软件包。因此,如果包的数量很大,则依赖性会增加,这会影响元包的实际使用。例如,Microsoft.AspNetCore所依赖的依赖项之一就是NETStandard.Library包,它也是一个元包,因此依赖关系会增加。