我刚刚在ASP 5 MVC 6 beta8中创建了一个新项目,并为测试创建了一个兼容的类库。问题出现在我打算用于测试的新“Web类库”项目中。
这就是我的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
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 :(得分:2)
更新:现在可以通过升级到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"
},
不幸的是,每次重新生成锁定文件时,您都必须再次执行此操作。
答案 1 :(得分:0)
您在同一个项目中不能有两个不同的版本。您可以使用*来允许升级或降级。请参阅此artical Dependency-Resolution