In the past, we’ve given developers the recommendation to not reference the meta
package (NETStandard.Library
) from NuGet packages but instead reference
individual packages, like System.Runtime
and System.Collections
. The
rationale was that we thought of the meta package as a shorthand for a bunch of
packages that were the actual atomic building blocks of the .NET platform. The
assumption was: we might end up creating another .NET platform that only
supports some of these atomic blocks but not all of them. Hence, the fewer packages you reference, the more portable you’d be. There were also concerns regarding how our tooling deals with large package graphs.
Moving forward, we’ll simplify this:
-
.NET Standard is an atomic building block. In other words, new platforms
aren’t allowed to subset .NET Standard — they have to implement all of it. -
We’re moving away from using packages to describe our platforms,
including .NET Standard.
This means, you’ll not have to reference any NuGet packages for .NET Standard
anymore. You expressed your dependency with the lib folder, which is exactly how
it has worked for all other .NET platforms, in particular .NET Framework.
However, right now our tooling will still burn in the reference to
NETStandard.Library
. There is no harm in that either, it will just become
redundant moving forward.
I’ll update the FAQ on the .NET Standard repo to include this question.
Update: This question is now part of the FAQ.