Search code examples
c#asp.net.net-6.0microsoft-data-sqlclient

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


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?


Solution

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