【问题标题】:Could not load type 'AgencySystem' from assembly 'EPaymentInvoicing, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'无法从程序集“EPaymentInvoicing,版本=1.0.0.0,文化=中性,PublicKeyToken=null”加载类型“AgencySystem”
【发布时间】:2013-09-05 15:30:42
【问题描述】:

我已经为此苦苦挣扎了好几天。谷歌搜索并尝试不同的东西,但没有进展。

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

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

【问题讨论】:

    标签: c# asp.net-mvc


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • @oliverdejohnson 转到 VS 中的项目属性,然后选择 Build 选项卡,您将看到 Target Platform。
      • 在您的项目属性下,单击构建并检查目标平台。更改当前存在的内容,看看是否可行
      • 我找不到目标平台。我右键单击 d 项目并单击属性页面,然后单击构建选项卡。是这样吗?
      • @oliverdejohnson 对,必须有 Target Platform 字段。
      • 我可以在 vs2010 项目上看到它,但在 vs2008 上看不到。mvc one(vs2010) 指向任何 CPU。在 vs2008 项目上看不到目标平台
      【解决方案3】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-02-15
        • 1970-01-01
        • 2021-10-13
        • 1970-01-01
        • 1970-01-01
        • 2015-04-22
        • 2014-12-06
        相关资源
        最近更新 更多