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

更新于:2020年9月25日

4K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告