Unlike .NET Standard 1, .NET Standard 2 introduces a single netstandard.dll
reference assembly.
However, when compiling (with .NET Core SDK 2.2.203) with
This is sadly due to history.
You are right that in theory only netstandard.dll
is needed to build a .NET Standard library.
However, two things complicate this:
System.Collections.Generic.dll
to be resolvable. Also, the build system needs to know that classes that the 1.6 library expects in this dll is actually the same as the one in netstandard.dll
..dll
files that .NET Framework uses - from mscorlib.dll
to the individual framework dlls.For both of these, references to assemblies with these names (and versions) are added which contain only type forward declarations. So for example mscorlib.dll
would contain an empty System.Object
entry that is marked with "go look for that in netstandard.dll
".