Project.json AutoMoq无法解析Moq 4.1

时间:2016-03-07 14:50:09

标签: asp.net moq dnx autofixture project.json

我正在尝试在ASP.Net 5.0项目中使用AutoFixture.AutoMoq 3.40.0Moq 4.2.1510.2205,但我遇到了问题;

The dependency moq >= 4.1.1308.2120 could not be resolved.  

这很奇怪,因为AutoFixture.AutoMoq依赖于moq (>= 4.1.1308.2120)(请参阅https://www.nuget.org/packages/AutoFixture.AutoMoq),因此应该Moq 4.2.x一起使用(不应该这样) ?)

我创建了一个新的空项目,并添加了两个依赖项以将问题减少到其核心。

Project.json看起来像这样;

{
  "version": "1.0.0-*",
  "description": "DependencyTest Console Application",
  "compilationOptions": {
    "emitEntryPoint": true
  },

  "dependencies": {
    "Moq": "4.2.1510.2205",
    "AutoFixture.AutoMoq": "3.40.0"
  },

  "commands": {
    "DependencyTest": "DependencyTest"
  },

  "frameworks": {
    "dnx451": {}
  }
}

一旦我尝试构建这个空的项目,我就会收到上述错误。如果我删除project.json中对Moq的引用(或将其指向4.1.x版本),则编译。不幸的是,我尝试使用的代码库已经使用了Moq 4.2中的功能。

查看project.lock.json看起来就像> =对Moq 4.1的依赖被转换为4.1的固定依赖关系,这意味着依赖关系的工作方式存在问题通过dotnet出来?

我尝试更改project.json中列出的包的顺序,尝试使用dnu restore并尝试删除roaming/nuget/nuget.config,但都无济于事。

1 个答案:

答案 0 :(得分:1)

这是包定义中的错误。请看this回答:在“Moq”中替换“moq”