Search code examples
asp.net-core.net-corenugetcompatibilityserilog

If a nuget package dependencies is on .NetFramework and .NetStandard - is it compatible with .Net core and runs on Linux?


I have a confusion to install one nuget package, example: Serilog.Sinks.Async - if we see this package in nuget console, it says Dependencies are: .NetFramework 4.5 / 4.6.1 and also .NetStandard

We are running an Asp.Net core application and will be hosted on Linux server, if this package is dependent on .NetFramework, will it run on Linux/Ubuntu platform?

enter image description here


Solution

  • dependencies is on .NetFramework and .NetStandard

    It's not an and. It's an or. NuGet packages have the ability to target multiple frameworks, and this is what's happening here.

    Serilog.Sinks.Async (as of your screenshot) targets 4 different frameworks: net45, netstandard1.1, net461, and netstandard2.0, which means it can be consumed by applications (or libraries) built with the full .NET Framework as well as .NET Core apps and other .NET Standard libraries.

    The fact it targets .NET Standard or .NET Core App tells you that's it's very likely that the library works on Linux, but there's no guarantee. You can confirm with the maintainers of the project by asking in the Gitter chat, or by opening an issue in the source code repository on GitHub.