如何在Visual Studio 2013中使用NuGet 3.0?

15

我有一个混合环境,其中一些开发人员使用Visual Studio 2013,而其他人则使用2015。一切都很顺利,直到我们从Visual Studio 2015更新了一个NuGet包引用。

现在,当尝试从Visual Studio 2013恢复NuGet包时,我看到以下错误:

项目Foo的NuGet包还原失败:'System.Linq 4.0.0' 包需要NuGet客户端版本'3.0'或更高版本,但当前的NuGet版本是“2.8.60723.765”。

显然,Visual Studio 2013没有NuGet 3.x版本。

是否有解决方案可以继续同时使用Visual Studio 2013和2015?

2个回答

11

哎,一个团队不能决定使用什么工具,会出现什么问题呢?嗯,就是这个。还有另一个相当严重的问题,该软件包适用于目标CoreCLR和Win10版通用应用程序的项目。在VS2013中,您无法创建也无法构建此类项目。因此,尝试解决Nuget版本问题并没有任何好处。

你们需要聚在一起确定要开展的项目。如果CoreCLR是每个人都想做的,那么每个人必须升级到VS2015,请问为什么。


Hans,感谢您的回复。我不知道我们在项目中如何偷偷地引入了CoreCLR依赖项。这完全不是故意的,因为我们目前正在构建Win32。为了提供通往通用应用程序的未来路径,我们的大部分代码都是作为PCL构建的;我支持这可能是触发“NuGet 3.0”依赖项的问题所在。 - Pierre Arnaud
我们使用了 System.Collections.Immutable 1.1.36(适用于 .NET 4.5)。升级到 1.1.37 版本后,意外引入了对 .NET 5.0 的依赖。 - Pierre Arnaud

11

正如Hans Passant在他的回复中所指出的,对于仅针对普通.NET 4.5框架的项目(这就是我们的情况下Visual Studio 2013的目标),不需要NuGet 3.0。

具体来说,更新的NuGet包——System.Collections.Immutable 1.1.37的添加引入了对.NETPlatform,Version=v5.0的依赖,从而触发了意外依赖NuGet 3.0

返回到该软件包的版本1.1.36即可解决此问题。


1
我需要在VS 2013上安装NuGet 3.0,因为3.#支持ContentFiles,而2.#不支持:( - Phill
+1 谢谢,我在新版本的Moq上遇到了类似的问题,安装一个不带依赖的旧版本的Moq解决了!我耐心等待我的团队升级到2015年版... - EaziLuizi
这没有任何意义。NuGet 3 显然有一个新的软件包源结构,也许 3 不太好处理旧的形式(https://github.com/NuGet/Home/issues/1909)。2 是否支持新的结构?如果不支持,那似乎足以升级的理由了。 - jpmc26

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接