C# Asp.net Core中的元包是什么?
众所周知,Microsoft.AspNetCore 包是添加到许多 ASP.NET Core 模板中的包之一。
创建新的 ASP.NET Core 项目时,Microsoft.AspNetCore 包会重复包含为常用的项目依赖项之一。它提供了许多重要的包来构建基本的 ASP.NET Core 应用程序。
但是,此包本身不包含任何实际的 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 包的版本。
这些依赖项提供了用于设置使用 Kestrel Web 服务器并包含 IIS 集成的基本 ASP.NET Core 服务器的主要基本库。
就应用程序本身而言,仅使用此包,您就可以将应用程序设置和环境变量加载到配置中,使用 IOptions 接口,并将日志记录配置到控制台。
对于中间件,只包含 Microsoft.AspNetCore.Diagnostics 包,这允许添加中间件,例如 ExceptionHandlerMiddleware、DeveloperExceptionPageMiddleware 和 StatusCodePagesMiddleware。
要完成一个应用程序,我们不能只使用元包,因为它没有提供足够的控件,但我们可以使用 Microsoft.AspNetCore.Mvc 或 Microsoft.AspNetCore.MvcCore 包向我们的应用程序添加 MVC 功能,并且还需要一些其他包。
元包试图使用许多可以应用于许多应用程序的包,这样我们就不需要加载更多依赖项,但实际上并非如此,因为它还需要其他包。因此,如果包的数量很大,那么依赖项就会增加,这会影响元包的实际使用。例如,Microsoft.AspNetCore 所依赖的依赖项之一是 NETStandard.Library 包,它也是一个元包,因此依赖项会增加。