System.TypeLoadException:无法从程序集加载类型

时间:2009-09-21 20:42:17

标签: asp.net

今天,在尝试运行我的网络应用程序时,我开始遇到这个恼人的问题。

方案如下:

我有一个Web应用程序项目(从现在开始WAP)和4个库项目(BusinessEntities,BusinessLogic,DataAccess和Utils)。

DataAccess引用BusinessEntities BusinessLogic引用BusinessEntities和DataAccess WAP引用了BusinessLogic,BusinessEntities和DataAccess

当我运行WAP时,我得到了

System.TypeLoadException:无法从程序集“DataAccessAssembly”加载类型“Namespace.DataAccess.ClassDataAccess”,Version = 1.0.3551.29465,Culture = neutral,PublicKeyToken = null'。

这是BusinessLogic的方法尝试创建DataAccess类的isntance的时候。我在WAP的de bin文件夹里面的DataAccess dll上使用了反射器,它确实包含了我正在调用的类。

我已经尝试删除临时的asp.net文件,但没有成功,我使用Cassini作为Web服务器(还没试过IIS)

感谢。

4 个答案:

答案 0 :(得分:4)

您的参考文献中可能有一些混合的版本号。

检查项目引用,web.config文件和.dll版本,以确保所有引用都正确。

答案 1 :(得分:4)

您还可以使用名为fuslogvw.exe (Assembly Binding Log Viewer)的SDK附带的工具。它对于查找程序集绑定错误很有用,并解释了错误发生的原因。

答案 2 :(得分:1)

刚刚解决了一个类似的问题(TypeLoadException,对于来自似乎存在的dll的类,使用null InnerException)。原因是我们从服务器项目引用了 client dll(即.Foo.DomainService.dll而不是Foo.DomainService.Web.dll)。

答案 3 :(得分:0)

您需要检查InnerException是否有根本原因

相关问题