У меня есть код вида
using FluentValidation;
public class FreeformValidator : AbstractValidator
{
public FreeformValidator() // <-- VerificationException on this line
{
RuleFor(ff => ff.Text).Must(BeLongEnough).WithMessage("Must be at least {0} characters.", ff => ff.MinLength);
}
}
который запускается модульным тестом. В VS 2010, ориентированном на.Net 4, модульный тест прошел нормально. После обновления до VS 2012 и ориентации на.Net 4.5 модульный тест выдает
VerificationException
Operation could destabilize the runtime.
В диалоговом окне исключения предлагается
Make sure your application is not loading two conflicting versions of a class library.
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 и повторный -запуск тестов приводит к тому же Исключению .
Похожие проблемы, которые, похоже, не применимы
Как я могу предотвратить VerificationException при запуске теста с подключенным отладчиком?
Модульный тест так же не работает без отладчика, и добавление FluentValidator в список исключений IntelliTrace не помогло.
Операция может дестабилизировать среду выполнения?
У меня нет сборки со строгим именем и атрибута AllowPartiallyTrustedCallers.
Обновление 3
PEVerify не обнаруживает проблем ни с библиотекой DLL тестового проекта, ни с проверяемой библиотекой DLL.