Ошибка после перехода с .NET3.5 на .NET4.0

У меня тест объявлен как:

    [Test]
    [ExpectedException(typeof(FaultException<ArgumentException>))]
    public void ShouldNotBeAbleToDeleteASystemList()

Когда я запускаю это в VS2008 с таргетингом на .net 3.5, все работает нормально, и тест проходит, когда создается исключение.

Я перенес решение на VS2010 и изменил целевую платформу на 4.0, и теперь тест не проходит со следующими деталями:

System.ServiceModel.FaultException`1 [[System.ArgumentException, mscorlib, Version = 4.0.0.0, Culture = нейтральный, PublicKeyToken = b77a5c561934e089]] ожидалось

Когда я пишу фактическое сообщение в консоль, оно выглядит следующим образом:

System.ServiceModel.FaultException`1 [System.ArgumentException]: это системный список, который не может быть удален (сведения об ошибке равны System.ArgumentException: значение не попадает в ожидаемый диапазон.).

Я проверил, и все проекты нацелены на .net 4.0.

Что не так?


person David Ward    schedule 15.07.2010    source источник


Ответы (1)


Для всех, кто может столкнуться с такой проблемой. Причина этой ошибки заключалась в том, что исключение было вызвано сторонним компонентом, который был скомпилирован для платформы .net 2.0, а возникшее исключение было классом .net 2.0. Мой код не интерпретировал это как один и тот же класс. Решением было изменить конфигурацию стороннего компонента, чтобы добавить строку <supportedRuntime ... /> в раздел <startup>.

person David Ward    schedule 17.07.2010