我几天来一直在努力解决这个问题。谷歌搜索和尝试差异,但没有进展。
我正在做一个MVC项目,但我需要使用其他项目(Web项目)的服务。我确实构建了web项目并在mvc项目中引用了它的dll。我可以从引用的项目中访问成员,所有内容都可以很好地编译。
然而,问题是在运行时我的代码调用了一个引用项目的类,并且抛出这个“无法加载类型”的任何东西!
这是有问题的代码行
CurrentAgency = new AgencySystem().RetrieveByApiCode(agencyCode);
AgencySystem位于引用的程序集中。
但它一直在说 “无法从程序集'EPaymentInvoicing,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'加载类型'EPaymentInvoicing.BusinessFacade.AgencySystem'。”
知道为什么吗? 注意:引用的项目是使用vs2008构建的,而MVC项目是使用vs2010
谢谢(如果你需要更多信息,我会很高兴)
答案 0 :(得分:4)
问题出在程序集名称上。 感谢Saibal,我能够看到两个项目具有相同的程序集名称,运行时可能正在引用引用程序集并在那里寻找AgencySystem tyoe。
更改其中一个程序集的名称修复了我的问题。
答案 1 :(得分:1)
检查平台类型。可能是dll是为x64编译的,而你的项目是为x86设置的,反之亦然。
答案 2 :(得分:0)
我不认为这是一个平台问题,因为在这种情况下它应该抛出BadImageFormatException。
intellisense是否识别AgencySystem类?如果那是真的那么你可能引用了一个比编译文件夹中复制的那个更新的程序集,所以清理解决方案(也许删除bin和obj文件夹)应该修复它。
如果intellisense没有识别该类,那么它可能不存在。
如果您将它作为已编译的程序集而不是项目引用,我建议您将特定的代码和强名称添加到EPaymentInvoicing程序集中。