错误:已将多个ASP.NET MVC程序集加载到此应用程序中

时间:2013-06-08 22:41:15

标签: asp.net-mvc asp.net-mvc-2

我有一些问题需要在我开发基于MVC2的Web应用程序的盒子上工作。我用MvcDiagnostics.aspx对网站进行了测试,发现了以下内容

ASP.NET MVC程序集信息(System.Web.Mvc.dll)

  

已加载多个ASP.NET MVC程序集   应用

     

程序集版本:ASP.NET MVC 2 RTM(2.0.50217.0)全名:   System.Web.Mvc,Version = 2.0.0.0,Culture = neutral,   PublicKeyToken = 31bf3856ad364e35代码库:   文件:/// C:/Windows/assembly/GAC_MSIL/System.Web.Mvc/2.0.0.0__31bf3856ad364e35/System.Web.Mvc.dll   部署:部署GAC

     

汇编版本:未知版本(3.0.20105.0)全名:   System.Web.Mvc,Version = 3.0.0.0,Culture = neutral,   PublicKeyToken = 31bf3856ad364e35代码库:   file:/// C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Web.Mvc/v4.0_3.0.0.0__31bf3856ad364e35/System.Web.Mvc.dll部署:GAC部署

我想我到处寻找参考资料。该项目中的引用仅指向2.0.0.0版本。 web.config似乎也没问题

<system.web>
    <compilation debug="true" batch="false" defaultLanguage="c#" targetFramework="4.0">
      <assemblies>
        <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      </assemblies>
    </compilation>
</system.web>

有什么建议去哪看?

2 个答案:

答案 0 :(得分:1)

进行了更多追踪,发现Elmah造成了这个

Could not load type 'System.Web.Mvc.GlobalFilters' from assembly 'System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.

删除对elmah的任何引用都解决了问题

答案 1 :(得分:0)

检查引用中对System.Web.Mvc.dll文件的引用。确保它指向C:\ Program Files(x86)\ Microsoft ASP.NET \ ASP.NET MVC 3 \ Assemblies \ System.Web.Mvc.dll

如果它指向ASP.NET MVC 4目录下的那个,那么在记事本中打开你的项目文件。寻找

<Reference Include="System.Web.Mvc">
  <Private>False</Private>
</Reference>

这应该改为

<Reference Include="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35, processorArchitecture=MSIL" />