C# Asp.net Core 中的元包是什么?

csharpserver side programmingprogramming更新于 2025/9/30 12:22:17

众所周知,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 包,它也是一个元包,因此依赖项会增加。


相关文章