Microsoft.Data.SqlClient 某些项目需要 NuGet,但其他项目您可以使用 Microsoft.Data.SqlClient 而无需 NuGet

Microsoft.Data.SqlClient NuGet is needed in some projects but others you can do using Microsoft.Data.SqlClient without the NuGet

有些项目需要添加NuGet包Microsoft.Data.SqlClient才可以

using Microsoft.Data.SqlClient

在其他项目中,我可以在不显式添加 NuGet 包的情况下执行此操作。 下面的示例都是 .NET 6.0 项目(.NET 5 相同)。

直接引用:

未直接引用:

我想知道这是如何工作的。 包是否以某种方式间接引用?

AspNetCore.HealthChecks.SqlServer 取决于 Microsoft.Data.SqlClient:

  • .NET 标准 2.0
    • Microsoft.Data.SqlClient (>= 2.1.2)
    • Microsoft.Extensions.Diagnostics.HealthChecks (>= 5.0.1)
  • net5.0
    • Microsoft.Data.SqlClient (>= 2.1.2)
    • Microsoft.Extensions.Diagnostics.HealthChecks (>= 5.0.1)

因此传递依赖性 Microsoft.Data.SqlClient 也对您可用。