【问题标题】:How to use NuGet 3.0 with Visual Studio 2013?如何在 Visual Studio 2013 中使用 NuGet 3.0?
【发布时间】: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 的解决方案?

【问题讨论】:

    标签: visual-studio-2013 nuget visual-studio-2015 nuget-package-restore


    【解决方案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 是否支持新结构?如果没有,这似乎足以升级。
    猜你喜欢
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    • 2014-08-08
    • 2014-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多