以下に示すように、ASP.NET MVC4 プロジェクトで Ninject.Web.Mvc.FluentValidation を設定しようとしました。
var ninjectValidatorFactory = new NinjectValidatorFactory(kernel);
//ModelValidatorProviders.Providers.Add(new FluentValidationModelValidatorProvider(new NinjectValidatorFactory(kernel)));
FluentValidationModelValidatorProvider.Configure(x => x.ValidatorFactory = ninjectValidatorFactory);
DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;
しかし、私は以下のエラーが発生しています:
Error 1 The type 'FluentValidation.ValidatorFactoryBase' is defined in an assembly that is not referenced. You must add a reference to assembly 'FluentValidation, Version=2.0.0.0, ...
Error 2 Cannot implicitly convert type 'Ninject.Web.Mvc.FluentValidation.NinjectValidatorFactory' to 'FluentValidation.IValidatorFactory'. An explicit conversion exists (are you missing a cast?)
Ninject.Web.Mvc.FluentValidation の NuGet パッケージがバージョン 3.0.0.0 であることを確認できます。エラーは、依存関係の FluentValidation のバージョン 2 を探していることを示しています。
Ninject.Web.Mvc.FluentValidation 専用の NuGet パッケージをインストールすると、バージョン 3.4.6 ではなく FluentValidation v2 の依存関係がインストールされます。
しかし、私はここでも見ることができます: https://github.com/ninject/ninject.web.mvc.fluentvalidation/commit/82096d0afd15c41d01c09fd47f4247682261768e バージョン 3.4.6 用に更新されているプロジェクトに関するメモ
現在、NuGet を使用して FluentValidation.MVC4 パッケージをプロジェクトに追加し、その後に Ninject.Web.Mvc.FluentValidation を追加しています (依存関係が既に存在することがわかり、追加されません)。
NuGet パッケージが最後に公開されたのは 2013 年 4 月 1 日ですが、プロジェクトの .nuspec ファイルを見ると、
<dependency id="FluentValidation" version="3.2.0.0" />
このセットアップで間違ったことはありますか? または、パッケージマネージャーコンソールを介してこれを機能させ、依存関係のバージョンを更新する方法はありますか?