Project.json AutoMoq 无法解析 Moq 4.1

Project.json AutoMoq cannot resolve Moq 4.1

我正在尝试在 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,但都无济于事。

这是包定义中的错误。查看 答案:将 "moq" 替换为 "Moq"