问题
I have a mixed environment where some developers are working on Visual Studio 2013, and others are working on 2015. Everything worked fine until we updated a referenced NuGet package from Visual Studio 2015.
Now, when trying to restore the NuGet packages from Visual Studio 2013, I see the following error:
NuGet Package restore failed for project Foo: The 'System.Linq 4.0.0' package requires NuGet client version '3.0' or above, but the current NuGet version is '2.8.60723.765'..
Apparently, there is no NuGet version 3.x for Visual Studio 2013.
Is there a solution to continue working with both Visual Studio 2013 and 2015?
回答1:
Sigh, a team that can't make up their mind about what tools they use, what could possibly go wrong? Well this. And the other rather nasty problem, that package is meant for projects that target CoreCLR and the Win10 flavor of Universal apps. You cannot create nor build such a project on VS2013. So trying to solve the Nuget version problem doesn't buy you anything.
You guys need to get together and hammer-out what projects you are going to work on. If CoreCLR is what everybody wants to do, and do ask why, then everybody must update to VS2015.
回答2:
As Hans Passant noted in his reply, there is no need for NuGet 3.0 on projects which are only targetting the vanilla .NET 4.5 framework (and that's what Visual Studio 2013 was meant to target in our case).
It was the addition of an updated NuGet package, specifically System.Collections.Immutable
1.1.37, which introduced a dependency on .NETPlatform,Version=v5.0
, which in turn triggered the accidental dependency on NuGet 3.0.
Returning to version 1.1.36 of that package solved the issue.
来源:https://stackoverflow.com/questions/32776772/how-to-use-nuget-3-0-with-visual-studio-2013