In some projects I need to add NuGet package Microsoft.Data.SqlClient to the project before I can do

using Microsoft.Data.SqlClient

In other projects, I can do that without explicitly adding the NuGet package. The examples below are both .NET 6.0 projects (same for .NET 5).

Referenced directly: Nuget Microsoft.Data.SqlClient required

Not referenced directly: Nuget Microsoft.Data.SqlClient not required

I am wondering how this works. Is the package referenced indirectly somehow?

1

There are 1 best solutions below

0
On BEST ANSWER

AspNetCore.HealthChecks.SqlServer depends on Microsoft.Data.SqlClient:

  • .NETStandard 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)

so as transitive dependency Microsoft.Data.SqlClient becomes available for you also.