2

以下に示すように、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" />

このセットアップで間違ったことはありますか? または、パッケージマネージャーコンソールを介してこれを機能させ、依存関係のバージョンを更新する方法はありますか?

4

2 に答える 2

3

パッケージ マネージャー コンソールに次のコードを入力します。

Install-Package FluentValidation-Signed
Install-Package FluentValidation.MVC3-Signed -IgnoreDependencies
Install-Package Ninject.Web.Mvc.FluentValidation -IgnoreDependencies

-IgnoreDependencies は重要です。

于 2013-10-03T05:30:17.330 に答える