Asp.net mvc 4 visual studio 2012 RC无法加载类型System.Web.Http.RouteParameter

Asp.net mvc 4 visual studio 2012 RC无法加载类型System.Web.Http.RouteParameter,asp.net-mvc-4,.net-4.5,visual-studio-2012,Asp.net Mvc 4,.net 4.5,Visual Studio 2012,我的电脑上安装了VS11测试版、.NET4.5和MVC4测试版。我刚刚下载了最新的RC,现在我在尝试运行web项目时收到了此错误消息。我尝试重新安装.NET4.5,卸载并重新安装VS12RC,但都没有成功。我试过了 这个建议也不起作用 堆栈 Could not load type 'System.Web.Http.RouteParameter' from assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyT

我的电脑上安装了VS11测试版、.NET4.5和MVC4测试版。我刚刚下载了最新的RC,现在我在尝试运行web项目时收到了此错误消息。我尝试重新安装.NET4.5,卸载并重新安装VS12RC,但都没有成功。我试过了 这个建议也不起作用

堆栈

Could not load type 'System.Web.Http.RouteParameter' from assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.TypeLoadException: Could not load type 'System.Web.Http.RouteParameter' from assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.

Source Error:


Line 26:                 defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
Line 27:             );
Line 28:         }
Line 29:     }
Line 30: }


Source File: c:\projects\testNew\testNew\App_Start\RouteConfig.cs    Line: 28

Stack Trace:


[TypeLoadException: Could not load type 'System.Web.Http.RouteParameter' from assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.]
   testNew.RouteConfig.RegisterRoutes(RouteCollection routes) in c:\projects\testNew\testNew\App_Start\RouteConfig.cs:28
   testNew.MvcApplication.Application_Start() in c:\projects\testNew\testNew\Global.asax.cs:25

[HttpException (0x80004005): Could not load type 'System.Web.Http.RouteParameter' from assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.]
   System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +9841101
   System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +118
   System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +172
   System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +336
   System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +296

[HttpException (0x80004005): Could not load type 'System.Web.Http.RouteParameter' from assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9850940
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +101
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +254


Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.17626 
编辑6

我使用了
fuslogvw
,发现该项目从这里引用了
System.Web.Http.dll

C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.Http\v4.0_4.0.0.0__31bf3856ad364e35
而不是我的项目。重命名这个文件使我的项目工作,但我显然不能在我的共享托管网站上这样做

我已经从中手动引用了dll

C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies

并将其设置为
复制到本地
。它仍然从GACmsil加载。如何覆盖此功能?

我建议您也从MVC4 Beta升级到MVC4 RC: 根据发行说明:“您可以将ASP.NET MVC 4开发者预览版和测试版升级为ASP.NET MVC 4候选发行版,而无需卸载。”

我就这么做了,消除了错误

原因是你的应用程序指向了GAC中旧的MVC4测试版

另一种方法是使用此链接中提到的DEVPATH环境变量。


Vincent现在的答案是替换文件夹中的dll

C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies
进入

在另一台机器上进行了从Beta版升级到RC版的工作。我希望这对将来的人有所帮助


如果我找到了更好的答案,我会更新。

我也有同样的问题,在谷歌搜索错误时发现了这个问题。 当我查看windows上安装的程序时,我看到安装了3个MVC 4“应用程序”:

  • MVC4VS2010工具
  • MVC4
  • MVC4(捆绑)

  • 我卸载了“MVC 4”应用程序,然后我的项目运行良好。

    我已经尝试了我在作品中提到的DEVPATH。MVC 4 RC附带2012 RC。2012年没有单独下载的选项。另请参阅最新的编辑手稿,了解添加的@roet。在我提出这个问题的时候,我已经卸载了我能找到的所有东西。它对我不起作用,但我很高兴它对你起作用。是的,它起作用了@请确保替换的所有程序集(包括XMLsSystem.Web.Http)在GAC_MSIL下不存在。
    C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.Http\v4.0_4.0.0.0__31bf3856ad364e35