2009-09-21 318 views
3

今天我试图运行我的Web应用程序时就开始出现这个烦人的问题。System.TypeLoadException:无法从程序集加载类型

的情况如下:

我有一个Web应用程序项目(WAP从现在起)和4个库项目(BusinessEntities,BusinessLogic,数据访问和utils的)。

数据访问引用BusinessEntities BusinessLogic引用BusinessEntities和数据访问 的WAP引用BusinessLogic,BusinessEntities和数据访问

当我运行WAP我得到一个

System.TypeLoadException:未能加载类型“Namespace.DataAccess .ClassDataAccess'来自程序集'DataAccessAssembly',版本= 1.0.3551.29465,Culture = neutral,PublicKeyToken = null'。

这是当BusinessLogic的一个方法尝试创建一个DataAccess类的实例时。我在WAP的de bin bin文件夹内的DataAccess dll上使用了反射器,它包含我正在调用的类。

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

感谢。

+0

有关它的任何解决方案? – Kiquenet 2013-06-14 06:53:26

回答

4

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

检查您的项目参考,您的web.config文件和您的.dll版本,以确保您的所有参考是正确的。

+0

+1,这解决了我的问题。谢谢! – Chris 2011-04-08 19:37:48

0

您需要检查的InnerException的根本原因

+0

InnerException为null :( – Paleta 2009-09-22 13:57:10

4

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

+0

使用此工具!它将为您节省很多挫折:) – Alex 2009-12-06 23:01:32

+0

感谢您指向一个调试工具。我在Linux上使用Mono时遇到了一个问题,在网络上查找“fuslogvw.exe”并找到(本页)[http://mono.1490590.n4.nabble.com/assembly-bind-tracking- td1505796.html],他们说你可以通过设置环境变量'MONO_LOG_LEVEL = info'和'MONO_LOG_MASK = asm'来看到调试消息。 – 2016-06-27 09:35:33

1

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

相关问题