我已经为这事挣扎了好几天了。谷歌和尝试不同的东西,但没有任何进展。
我正在做一个MVC项目,但我需要使用来自另一个项目(web项目)的服务。我确实构建了web项目并在mvc项目中引用了它的dll。我可以从引用的项目中访问成员,并且一切都编译得很好。
但是,问题是在运行时,我的代码正在调用引用项目的一个类,它抛出这个“无法加载类型”--不管什么!
这是有问题的代码行
CurrentAgency = new AgencySystem().RetrieveByApiCode(agencyCode);AgencySystem位于引用的程序集中。
但是它一直说“无法从程序集'EPaymentInvoicing,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null‘加载类型的’"。
知道为什么吗?注意:参考的项目是用vs2008构建的,MVC项目是用vs2010构建的。
谢谢(如果你需要更多的信息,我会很高兴)
发布于 2013-09-05 16:15:53
问题在于程序集的名称。由于Saibal,我能够看到两个项目都有相同的程序集名称,并且运行时可能引用引用程序集并在那里查找AgencySystem类型。
更改其中一个程序集的名称解决了我的问题。
发布于 2013-09-05 15:34:16
检查平台类型。可能是dll是为x64编译的,您的项目是为x86设置的,反之亦然。
发布于 2013-09-05 16:08:17
我不认为这是一个平台问题,因为在这种情况下它应该抛出一个BadImageFormatException。
intellisense是否识别AgencySystem类?如果这是真的,那么您可能引用了比在编译文件夹中复制的程序集更新的程序集,因此清理解决方案(或者删除bin和obj文件夹)应该修复它。
如果intellisense没有识别这个类,那么它可能不存在。
我建议向EPaymentInvoicing程序集中添加一个版本代码和一个强名称,特别是如果您将其引用为已编译的程序集而不是项目。
https://stackoverflow.com/questions/18640399
复制相似问题