.NET Core works in the following platforms:
- Windows 7 SP1 or higher
- Windows Server 2008 R2 SP1 or higher
- Red Hat Enterprise Linux 7.2 or higher
- Fedora 23 or higher
- Debian 8.2 or higher
- Ubuntu 14.04 LTS/16.04 LTS, or higher
- Linux Mint 17 or higher
- openSUSE 13.2 or higher
- Centos 7.1 or higher
- Oracle Linux 7.1 or higher
- macOS X 10.11 or higher
This covers all modern Windows, Linux and macOS distributions (Windows 7 SP1 was released in 2010). It may well work in other distributions, but these are the ones that have been thoroughly tested by Microsoft.
So, how does this work? It turns out that whenever you request a NuGet package that needs native libraries, not included in the operating system, these are also included in the .nupkg
archive. .NET Core uses Platform Invoke (P/Invoke) to call the operating system-specific libraries. This means that you do not have to worry about it, the process to locate, add a NuGet package, and publish the project is the same no matter what the target operating system will be.
Keep in mind that platform independence is transparent to you, the developer, unless of course you also happen to be a library author, in which case you may need to care about it.