Nuget找不到更新的依赖项
我刚刚在ASP 5 MVC 6 beta8中创建了一个新项目和一个兼容的测试类库。这个问题发生在我打算用于测试的新“Web类库”项目中 这就是my project.json的外观:Nuget找不到更新的依赖项,nuget,moq,asp.net-core,asp.net-core-mvc,autofixture,Nuget,Moq,Asp.net Core,Asp.net Core Mvc,Autofixture,我刚刚在ASP 5 MVC 6 beta8中创建了一个新项目和一个兼容的测试类库。这个问题发生在我打算用于测试的新“Web类库”项目中 这就是my project.json的外观: { "version": "1.0.0-*", "description": "ClassLibrary1 Class Library", "authors": [ "Me" ], "tags": [ "" ], "projectUrl": "", "licenseUrl": "", "f
{
"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
需要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,但都没有帮助
我能怎么办
编辑
我还创建了一个普通类库,安装了上面的依赖项,并进行了尝试。正常类库项目构建良好。同一项目中不能有两个不同的版本。您可以使用*来允许向上或降级。请参阅本文更新:现在可以通过升级到AutoFixture.AutoMoq 3.41.0或更高版本来修复此问题 原始答复: 在project.lock.json的targets部分中,将“moq”大写,以便AutoMoq元素如下所示:
"AutoFixture.AutoMoq/3.38.0": {
"type": "package",
"dependencies": {
"autofixture": "3.38.0",
"Moq": "4.1.1308.2120"
},
不幸的是,每次重新生成锁文件时都必须再次执行此操作 如果尝试创建具有这些依赖项的普通控制台应用程序或类库,会发生什么情况?我现在就试过了,它编译得很好,所以我的假设是它与ASP 5 MVC 6相关,毕竟它仍处于测试阶段。如果是这样的话,这可能是一个你应该报告的错误。@MarkSeemann我尝试了一下,它构建得很好。我会向ASP5团队报告,看看他们怎么说。我遇到了同样的问题。您是否在github上创建了问题?问题在rc1中解决了吗?@Asik是的,我已经解决了。未采取任何措施:我在AutoFixture中为此创建了一个问题,并将在上面链接的ASP.NET回购问题中交叉引用它。它并没有说你不能有两个不同的版本在决定多个同类依赖项时,冲突解决程序使用满足所有版本要求的最低版本。“您需要一个精确的版本。”。若要允许使用较低版本,您必须指定一些内容,如“Moq”:“4.2.*”基于您链接到的文档,它没有说明不允许使用两个不同版本。请参阅上的问题