为什么第三方包 Autofac 带有两个包?

why third party package Autofac comes with two packages?

抱歉这个基本问题,只是想问一下为什么几乎所有的第三个包在 nuget 上都带有多个包?例如,Autofac 为:

<PackageReference Include="Autofac" Version="6.3.0" />
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="7.2.0" />

为什么不将所有内容都打包成一个包,例如Autofac?是不是更简洁明了?

一个包是Autofac,反转控制容器。

一个包是可以将Microsoft格式注册转换为Autofac注册的适配器。

您可以在没有适配器的情况下使用 Autofac。很多人都这样做,这就是非 .NET 核心项目的工作方式。因此,这是两个包 - 您可以选择加入所需的功能。

这与您在核心 Autofac 包中找不到所有经典 ASP.NET、WCF、Moq 和其他集成支持的原因相同。