Nuget 找不到更新的依赖项

Nuget cannot find newer dependency

我刚刚在 ASP 5 MVC 6 beta8 和兼容的 class 测试库中创建了一个新项目。问题出现在我打算用于测试的这个新 "Web Class Library" 项目中。

这是我的 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

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

我想问题是 AutoFixture.AutoMoq 在版本 "4.1.1308.2120" 中需要 Moq。见 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 但都没有帮助。

我该怎么办?

编辑

我还创建了一个普通的 Class 库,安装了上面的依赖项并尝试了一下。正常 Class 库项目构建良好。

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

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

原答案:

在 project.lock.json 的目标部分将 "moq" 大写,这样 AutoMoq 元素看起来像这样:

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

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