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

Posted

技术标签:

【中文标题】如何在 Visual Studio 2013 中使用 NuGet 3.0?【英文标题】:How to use NuGet 3.0 with Visual Studio 2013? 【发布时间】:2015-12-22 23:12:25 【问题描述】:

我有一个混合环境,其中一些开发人员正在开发 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 的解决方案?

【问题讨论】:

【参考方案1】:

唉,一个无法决定他们使用什么工具的团队,可能会出现什么问题?嗯这个。另一个相当讨厌的问题是,该软件包适用于以 CoreCLR 和 Win10 风格的通用应用程序为目标的项目。您不能在 VS2013 上创建或构建这样的项目。因此,尝试解决 Nuget 版本问题不会给您带来任何好处。

你们需要聚在一起,敲定你们要从事的项目。如果 CoreCLR 是每个人都想做的事情,并且问为什么,那么每个人必须更新到 VS2015。

【讨论】:

汉斯,谢谢您的回复。我不知道我们以某种方式将 CoreCLR 依赖项走私到我们的项目中。这根本不是故意的,因为我们目前正在为 Win32 构建。不过,为了提供通向通用应用程序的一些未来路径,我们的大部分代码都是作为 PCL 构建的;我支持这可能是触发“NuGet 3.0”依赖的问题。 我们使用了 System.Collections.Immutable 1.1.36(用于 .NET 4.5)。切换到 1.1.37 引入了对 .NET 5.0 的依赖,这是一个意外。【参考方案2】:

正如 Hans Passant 在他的回复中指出的那样,对于仅针对 vanilla .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 版本解决了这个问题。

【讨论】:

我在 VS 2013 上需要 NuGet 3.0,因为 3.# 支持 2.# 不支持的 ContentFiles :( +1 谢谢,我在新版本的 Moq 上遇到了类似的问题,安装以前版本的 Moq 没有该依赖项工作!我耐心等待我的团队升级到2015... 这没有任何意义。 NuGet 3 显然有一个新的包源结构,可能是 3 doesn't handle the old formal well。 2 是否支持新结构?如果没有,这似乎足以升级。

以上是关于如何在 Visual Studio 2013 中使用 NuGet 3.0?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不能在 Visual Studio 中禁用预编译头文件?

如何添加宏Visual Studio 2019

如何使用Visual Studio 2013或Visual Studio 2017设置TFS 2013

Intel parallel studio 2017 集成在visual studio 2013 中,现在如何集成到visual studio 2015

如何设置 TFS 2013 以使用 Visual Studio 2013 或 Visual Studio 2017 构建

visual studio 2013 wpf 添加窗口加载和关闭函数