1

我有一个测试声明为:

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

当我在针对 .net 3.5 的 VS2008 中运行它时,它一切正常,并且在抛出异常时测试通过。

我已将解决方案迁移到 VS2010 并将目标框架更改为 4.0,现在测试失败并显示以下详细信息:

System.ServiceModel.FaultException`1[[System.ArgumentException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] 是预期的

当我将实际消息写入控制台时,它是:

System.ServiceModel.FaultException`1[System.ArgumentException]:这是一个系统列表,无法删除(Fault Detail 等于 System.ArgumentException:值不在预期范围内。)。

我已经检查并且所有项目都针对.net 4.0。

出了什么问题?

4

1 回答 1

1

对于其他可能遇到此类问题的人。此错误的原因是针对 .net 2.0 框架编译的第 3 方组件引发了异常,并且引发的异常是 .net 2.0 类。我的代码没有将其解释为同一类。解决方案是更改第 3 方组件的配置以向该部分添加<supportedRuntime ... />一行<startup>

于 2010-07-17T19:29:11.860 回答