私は次のようなコードを持っています
using FluentValidation;
public class FreeformValidator : AbstractValidator<Freeform>
{
public FreeformValidator() // <-- VerificationException on this line
{
RuleFor(ff => ff.Text).Must(BeLongEnough).WithMessage("Must be at least {0} characters.", ff => ff.MinLength);
}
}
これは単体テストによって実行されます。.Net 4 を対象とする VS 2010 では、単体テストは正常に実行されました。VS 2012 に更新し、.Net 4.5 をターゲットにした後、単体テストがスローされます
検証例外
操作により、ランタイムが不安定になる可能性があります。
例外ダイアログが示唆する
アプリケーションがクラス ライブラリの競合する 2 つのバージョンを読み込んでいないことを確認してください。
AbstractValidatorは FluentValidation からのものです。テスト対象のプロジェクトと単体テスト プロジェクトの両方が FluentValidation 3.3.1.0 を参照しています。どちらのプロジェクトも現在、.Net 4.5 をターゲットにしています。
どちらのプロジェクトも AnyCPU をターゲットにしています。コードは Windows 7 64 ビットで実行されています。
アップデート
ここに単体テストコードがあります
[TestMethod]
public void FreeformValidation_MinLength()
{
Freeform fa = new Freeform();
fa.Required = true;
fa.MinLength = 3;
fa.MaxLength = 10;
FreeformValidator fv = new FreeformValidator();
fa.Text = "AB";
ValidationResult results = fv.Validate(fa);
Assert.AreEqual(1, results.Errors.Count, "Expected MinLength to fail.");
Assert.AreEqual("Must be at least 3 characters.", results.Errors[0].ErrorMessage, "Expected MinLength to fail.");
}
更新 2
おそらく関連している
インストール後の System.Security.VerificationException VS 2012
ただし、構成を x86 に切り替えてテストを再実行すると、同じ Exception が発生します。
当てはまらない類似の問題
アタッチされたデバッガーでテストを実行するときに VerificationException を防ぐにはどうすればよいですか?
単体テストはデバッガーなしで同じように失敗し、FluentValidator を IntelliTrace 除外リストに追加しても役に立ちませんでした。
厳密な名前のアセンブリはなく、AllowPartiallyTrustedCallers 属性もありません。
アップデート 3
PEVerify は、テスト プロジェクトの DLL またはテスト対象の DLL に問題を検出しません。