我的 NinjectModule 中有以下代码行:
Bind<IValidatorFactory>().To<NinjectValidatorFactory>().InSingletonScope();
这曾经工作正常,但在使用 Nuget 进行大量更新后,我收到以下错误:
错误 3 类型“Ninject.Web.Mvc.FluentValidation.NinjectValidatorFactory”不能用作泛型类型或方法“Ninject.Syntax.IBindingToSyntax.To()”中的类型参数“TImplementation”。没有从“Ninject.Web.Mvc.FluentValidation.NinjectValidatorFactory”到“FluentValidation.IValidatorFactory”的隐式引用转换。D:\Projects\Current...\Configuration\MainModule.cs 19 13
错误 4 类型“FluentValidation.ValidatorFactoryBase”在未引用的程序集中定义。您必须添加对程序集“FluentValidation,Version=2.0.0.0,Culture=neutral,PublicKeyToken=a82054b837897c66”的引用。D:\Projects\Current...\Configuration\MainModule.cs 19 13
确实,我没有引用 FluentValidation Version=2.0.0.0,但我确实引用了 FluentValidation Version=3.4.0.0。
根据元数据...
IValidatorFactory
并ValidatorFactoryBase
在 Assembly FluentValidation.dll 中定义。NinjectValidatorFactory
在 Assembly Ninject.Web.Mvc.FluentValidation.dll 中定义。
在我的 References 文件夹中,我有 FluentValidation v3.4.0.0 和 Ninject.Web.Mvc.FluentValidation v3.0.0.0。
我不明白为什么编译器认为我需要 FluentValidation Version=2.0.0.0。
我做错了什么,还是 Nuget 包的问题?