2

我正在尝试在 ASP.Net 5.0 项目中使用AutoFixture.AutoMoq 3.40.0with Moq 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": {}
  }
}

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

看起来project.lock.json似乎>= 对Moq 4.1 的依赖被转换为对 4.1 的固定依赖,这意味着 dotnet 如何解决依赖关系存在问题?

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

4

1 回答 1

1

这是包定义中的一个错误。看看这个答案:在“起订量”中替换“起订量”

于 2016-03-08T19:54:46.320 回答