Nuget找不到更新的依赖

时间:2015-10-25 00:00:26

标签: nuget moq asp.net-core asp.net-core-mvc autofixture

我刚刚在ASP 5 MVC 6 beta8中创建了一个新项目,并为测试创建了一个兼容的类库。问题出现在我打算用于测试的新“Web类库”项目中。

这就是我的project.json的样子:

{
  "version": "1.0.0-*",
  "description": "ClassLibrary1 Class Library",
  "authors": [ "Me" ],
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",
  "frameworks": {
    "dnx451": { }
  },
  "dependencies": {
    "AutoFixture": "3.36.9",
    "AutoFixture.AutoMoq": "3.36.9",
    "Moq": "4.2.1510.2205"
  }
}

在编译期间,我收到以下错误:

Severity    Code    Description Project File    Line    Source
Error   NU1001  The dependency moq >= 4.1.1308.2120 could not be resolved.  ClassLibrary1   Path\To\My\Solution\ClassLibrary1\project.json  1   Build

这是我的项目参考文献的样子:

enter image description here

我想问题是版本AutoFixture.AutoMoq Moq需要"4.1.1308.2120"。请参阅project.lock.json:

  "AutoFixture.AutoMoq/3.36.9": {
    "type": "package",
    "dependencies": {
      "autofixture": "3.36.9",
      "moq": "4.1.1308.2120"
    },
    "compile": {
      "lib/net40/Ploeh.AutoFixture.AutoMoq.dll": {}
    },
    "runtime": {
      "lib/net40/Ploeh.AutoFixture.AutoMoq.dll": {}
    }
  },

但是,已安装的Moq版本更高"4.2.1510.2205",因此根据错误消息,它应该没问题,但事实并非如此。

如果我将Moq降级到所需的版本,它的工作正常,但我宁愿使用最新版本。我已经安装了最新的nuget包管理器,重新启动了VS和OS,但都没有帮助。

我该怎么办?

修改

我还创建了一个普通的类库,安装了上面的依赖项并尝试了一下。普通班级图书馆项目建设很好。

2 个答案:

答案 0 :(得分:2)

更新:现在可以通过升级到AutoFixture.AutoMoq 3.41.0或更高版本来解决此问题。

原始答案:

在project.lock.json的targets部分中大写“moq”,以便AutoMoq元素如下所示:

"AutoFixture.AutoMoq/3.38.0": {
    "type": "package",
    "dependencies": {
      "autofixture": "3.38.0",
      "Moq": "4.1.1308.2120"
    },

不幸的是,每次重新生成锁定文件时,您都必须再次执行此操作。

答案 1 :(得分:0)

您在同一个项目中不能有两个不同的版本。您可以使用*来允许升级或降级。请参阅此artical Dependency-Resolution