【问题标题】:"Unable to satisfy package dependency constraints" with Breeze.Server.WebAPI2Breeze.Server.WebAPI2 的“无法满足包依赖约束”
【发布时间】:2015-05-12 15:34:04
【问题描述】:

我正在尝试将 Breeze.Server.WebAPI2 Nuget 包添加到 Visual Studio Community 2015 RC。当我点击安装时,我得到“无法满足包依赖约束”

列出的依赖项是:

Microsoft.AspNet.WebApi.OData (>= 5.2.2 && < 6.0.0)
Microsoft.AspNet.WebApi.WebHost (>= 5.2.2 && < 6.0.0)
Breeze.Server.ContextProvider (=1.5.4)
WebActivator

我尝试使用他们自己的包添加缺少的依赖项,现在我的 packages.config 看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Breeze.Server.ContextProvider" version="1.5.4" targetFramework="net452" userInstalled="true" />
  <package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net452" userInstalled="true" />
  <package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net452" userInstalled="true" />
  <package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net452" userInstalled="true" />
  <package id="Microsoft.AspNet.WebApi.OData" version="5.5.1" targetFramework="net452" userInstalled="true" />
  <package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net452" userInstalled="true" />
  <package id="Microsoft.Data.Edm" version="5.6.0" targetFramework="net452" userInstalled="true" />
  <package id="Microsoft.Data.OData" version="5.6.0" targetFramework="net452" userInstalled="true" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net452" userInstalled="true" />
  <package id="Newtonsoft.Json" version="6.0.8" targetFramework="net452" userInstalled="true" />
  <package id="System.Spatial" version="5.6.0" targetFramework="net452" userInstalled="true" />
  <package id="WebActivatorEx" version="2.0.6" targetFramework="net452" userInstalled="true" />
</packages>

但我仍然遇到同样的错误

编辑 为了解决这个问题,我下载了 Visual Studio 2013 Express 并使用它来创建项目并添加包。然后我将该项目添加到 Visual Studio 2015。不整洁,但我已经启动并运行。

【问题讨论】:

    标签: breeze nuget-package visual-studio-2015


    【解决方案1】:

    此回复有两点:

    首先,根据 NuGet 包管理器 GitHub 问题跟踪器,您收到的消息是一个已知问题,因为 有问题的包的身份应该已经包含在错误中消息,而不是通用的“无法满足包依赖约束”。

    https://github.com/NuGet/Home/issues/241

    如问题跟踪器所示,此问题已得到解决,但包含此修复程序的 NuGet 客户端版本尚未发布。

    我观察到其他带有 Visual Studio 2015 RC 的包的行为相同,最新的 NuGet 包管理器客户端(截至撰写时)是 3.0.60410.213。

    other 包上调试此错误时,我找到了一个潜在的解决方案:

    其次 默认情况下,Visual Studio 2015 RC 中的 NuGet 包管理器设置为安装依赖解决行为设置为“最低”的包。在我遇到“无法满足包依赖约束”错误的一两种情况下,添加一个将依赖解析行为设置为“最高”的包已经解决了这个问题,可能是由于父 NuSpec 清单中指定的依赖不正确, 依赖关系图清单中指定的不兼容性。

    后者的一个示例是,在 Visual Studio 2015 RC 项目模板中安装的包版本高于依赖链中第三方包的支持版本。上面提到的 NuGet 错误修复应该使识别这些情况变得更加容易。

    【讨论】:

    • 今天早上试图测试这个。新建 Web 应用程序项目 -> 包管理器 -> 安装 Breeze.Server.WebApi2(依赖行为:最低)。我原以为它会失败,以便我可以测试您的解决方案 - 但事实并非如此。可能是因为它是一个干净的解决方案。我测试中的 Microsoft.AspNet.WebApi.OData 版本是 5.2.2,所以它可能不喜欢原来的 5.5.1。非常感谢您提供的信息和努力。我会接受答案并奖励赏金。
    • Colin,我将尝试复制您遇到的原始错误并尝试确定这是否是错误的包,并相应地更新答案。也许您可以指定 Breeze.Server.WebAPI2 的版本,以便我们为未来的读者缩小范围。
    • 没问题 - 我现在安装了 Breeze.Server.WebApi2 version=1.5.4
    【解决方案2】:

    我有同样的问题,我有 Nuget 版本 3.0.60410.213。我试图安装 EasyNetQ,但我也不断收到该错误。我尝试在 Dependency Resolver 中使用“最高”,但没有雪茄。

    我的解决方案是单独安装依赖项。我安装了 RabbitMQ.Client 包,然后安装 EasyNetQ。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-28
      • 1970-01-01
      • 2014-10-27
      • 2014-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多