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。
为了完成应用程序,我们不能仅使用 Metapackage,因为它没有提供足够的控件,但我们可以使用 Microsoft.AspNetCore.Mvc 或 Microsoft.AspNetCore.MvcCore 包为我们的应用程序添加 MVC 功能,此外还可以使用其他一些包。需要。
元包只是试图使用一些可以应用于许多应用程序的包,这样我们就不需要加载更多的依赖项,但实际上它并没有这样做,因为它也需要其他包。因此,如果包的数量很大,依赖项就会增加,从而影响元包的实际使用。例如,Microsoft.AspNetCore 依赖的依赖项之一是 NETStandard.Library 包,它也是一个元包,因此依赖项会增加。

