3

这几天我一直在为此苦苦挣扎。谷歌搜索并尝试不同的东西,但没有进展。

我正在做一个 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 中

谢谢(如果您需要更多信息,我会很高兴)

4

3 回答 3

5

问题出在程序集名称上。感谢 Saibal,我能够看到两个项目具有相同的程序集名称,并且运行时可能正在引用引用程序集并在那里寻找 AgencySystem tyoe。

更改其中一个程序集的名称解决了我的问题。

于 2013-09-05T16:15:53.663 回答
1

检查平台类型。可能是 dll 是为 x64 编译的,而您的项目设置为 x86,反之亦然。

于 2013-09-05T15:34:16.090 回答
0

我不认为这是一个平台问题,因为在这种情况下它应该抛出一个 BadImageFormatException 。

智能感知是否识别 AgencySystem 类?如果这是真的,那么您可能引用了比编译文件夹中复制的程序集更新的程序集,因此清理解决方案(并可能删除 bin 和 obj 文件夹)应该修复它。

如果智能感知无法识别该类,则它可能不存在。

如果您将 EPaymentInvoicing 程序集引用为已编译程序集而不是项目,我建议您特别添加版本代码和强名称。

于 2013-09-05T16:08:17.177 回答