我将测试声明为:
[Test]
[ExpectedException(typeof(FaultException<ArgumentException>))]
public void ShouldNotBeAbleToDeleteASystemList()
当我在VS2008中以.net 3.5为目标运行时,一切正常,测试在抛出异常时通过。
我已将解决方案迁移到VS2010并将目标框架更改为4.0,现在测试失败并显示以下详细信息:
System.ServiceModel.FaultException`1 [[System.ArgumentException, mscorlib,版本= 4.0.0.0, 文化=中性, PublicKeyToken = b77a5c561934e089]] 预期
当我将实际消息写入控制台时,它是:
System.ServiceModel.FaultException`1 [System.ArgumentException]: 这是一个系统列表,不能 删除(故障细节等于 System.ArgumentException:值 不在预期的范围内。)。
我已检查并且所有项目都定位于.net 4.0。
出了什么问题?
答案 0 :(得分:1)
对于任何可能遭遇此类问题的人。出现此错误的原因是异常是由针对.net 2.0框架编译的第三方组件抛出的,抛出的异常是.net 2.0类。我的代码并没有把它解释为同一个类。解决方案是更改第三方组件的配置,以将<supportedRuntime ... />
行添加到<startup>
部分。