2015-10-25 25 views
6

我刚刚在ASP 5 MVC 6 beta8和兼容的类库中创建了一个新项目进行测试。在我打算用于测试的这个新的“Web Class Library”项目中出现问题。Nuget找不到更新的依赖关系

这是我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,但都没有帮助。

我该怎么办呢?

编辑

我还创建了一个正常的类库,上面安装有依赖关系,并给它一个尝试。正常的类库项目建好。

+0

如果您尝试使用这些依赖关系创建普通的vanilla控制台应用程序或类库,会发生什么情况?我现在就试过了,编译好了,所以我的假设是它与ASP 5 MVC 6有关,毕竟它仍处于测试阶段。如果是这样,那可能是你应该报告的错误。 –

+0

@MarkSeemann我试了一下,它建成的很好。我会把它报告给ASP5团队,看看他们说了些什么。 – gisek

+0

我遇到了同样的问题。你在github上创建了一个问题吗?问题在rc1中解决了吗? – Asik

回答

2

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

原来的答案:

在project.lock.json的目标部分利用“起订量”,让AutoMoq元素看起来是这样的:

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

不幸的是,你将不得不这样做每次锁文件重新生成时也是如此。

0

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

+0

它并不是说你不能有两个不同的版本。 '在决定多个表亲依赖关系时,解析器使用满足所有版本要求的最低版本。' – SoftwareCarpenter

+0

您需要准确的版本。要允许较低的版本,您必须指定someyhing,如“Moq”:“4.2。*” –

+0

根据您链接到的文档回答它没有提供关于不允许两个不同版本的内容。 – SoftwareCarpenter