我正在尝试在 ASP.Net 5.0 项目中使用AutoFixture.AutoMoq 3.40.0
with 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": {}
}
}
一旦我尝试构建这个原本为空的项目,我就会收到上述错误。如果我删除Moq
project.json 中的引用(或将其指向 4.1.x 版本),则它会编译。不幸的是,我试图将其放入的代码库已经使用了 Moq 4.2 的功能。
看起来project.lock.json
似乎>= 对Moq 4.1 的依赖被转换为对 4.1 的固定依赖,这意味着 dotnet 如何解决依赖关系存在问题?
我尝试更改包在 project.json 中列出的顺序,尝试使用dnu restore
并尝试删除roaming/nuget/nuget.config
,但均无济于事。