Ошибка после миграции с .NET3.5 на .NET4.0 - PullRequest
1 голос
/ 15 июля 2010

У меня есть тест, объявленный как:

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

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

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

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

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

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

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

Что не так?

1 Ответ

1 голос
/ 17 июля 2010

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

...