Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MSBuild Implicit Reference to NETStandard.Library #190

caleblloyd opened this issue Mar 11, 2017 · 3 comments

MSBuild Implicit Reference to NETStandard.Library #190

caleblloyd opened this issue Mar 11, 2017 · 3 comments


Copy link

caleblloyd commented Mar 11, 2017

With RTM tooling, we are now implicitly referencing NETStandard.Library/1.6.1. This implicit requirement will install version 4.3.0 of all of the System.* libraries, so we should go ahead and update dependencies to target those.

The MSDN Blog about NETStandard.Library says that it shims every framework version so that they all appear to provide the same set of APIs.

Once .NET Core 2.0 ships, NETStandard.Library 2.0 will likely also ship and we can ditch the majority of the conditional compile logic because NETStandard.Library 2.0 is supposed to target the .NET 4.6.1 API.

There's 2 options right now:

  1. Update System.* dependencies to 4.3.0
  2. Remove the implicit NetStandard.Library reference

From the blog, it appears that the path forward is to use NETStandard.Library, and option (1) seems the most sensible for that path. I'll go ahead and implement a PR for option (1), but if I seemed to have overlooked anything please post here

Copy link

I didn't immediately pick up on the distinction between ".NETStandard 1.3" and "NETStandard.Library 1.6.1"; having now read some more: 👍

Copy link

My understanding is that NETStandard.Library 1.6.1 is not compatible with netcoreapp1.0. The library seems to work fine when compiled into a netcoreapp1.0 project, but tools that check for netcoreapp1.0 compatiblilty (Amazon.Lamba.Tools 1.5.0+) reject the dependency due to NETStandard.Library 1.6.1. They claim NETStandard.Library 1.6.0 is the proper one to use with dotnet core 1.0.

Can someone set me straight?

Copy link
Contributor Author

@automagic NETStandard.Library is irrelevant from a compatibility standpoint. What's important is the netstandard version, which in this library's case we target netstandard1.3. Here is the version compatibility matrix, netstandard1.0 - netstandard1.6 are compatible with .NET Core 1.0.

NETStandard.Library is just a reference package that defines a set of libraries that are known to work together. In Microsoft's switch to .csproj, they now implicitly reference NETStandard.Library, so you will find many packages that reference it. Still, for compatibility purposes refer to the netstandard version, not the NETStandard.Library version.

The naming similarity between the two is confusing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet

No branches or pull requests

3 participants