我该如何排除故障:System.TypeLoadException?

pen*_*ake 12 .net c# assemblies typeloadexception reference

你能告诉我一种解决System.TypeLoadException问题的方法吗?

我在我的解决方案中的现有项目中遇到此异常,我在同一解决方案中从单元测试项目中引用该项目.

当我运行单元测试时抛出此异常.他们因为这个例外而失败:

细节:

测试方法MyErrorHandler.Test.MyTest.Parse_RecievesValidMessage_ReturnsArray抛出异常:System.TypeLoadException:无法从程序集"MyTestAssemblyName.Test加载类型 'MyTestNameSpace',版本= 1.0.0.0,文化=中性公钥= Somenumber.

我应该检查什么或我应该从哪里开始调查?

Mar*_*ade 12

抛出此异常的一种情况是执行程序集与具有给定类型的程序集具有相同的名称.例如,如果您运行的是MyApp.exe且类型位于MyApp.dll中,则CLR将假定该类型应位于MyApp.exe中.解决方案是重命名其中一个程序集.

  • +1谢谢你,这只是在经过大量的头部刮伤后保存了我的尾巴! (4认同)

Seb*_*Seb 4

在异常消息中,或者在 InnerException 属性中,您可能会找到所请求的类型,以及完全限定的名称、版本、程序集。检查是否可以从应用程序目录访问给定的程序集。可到达的含义是在应用程序目录中或在应用程序的私有探测路径中。

编辑:还要检查附属程序集(由类型加载器加载失败的程序集引用)是否可达。