How to run MVC3 or newer application in Mono

久未见 提交于 2020-01-04 04:32:08

问题


Default ASP .NET MVC 3 application is created using in Microsoft Web Developer Express 2010

Application is published to file system and copied to Debian server where mono 2.10.8 , Apache and mod_mono are installed.

Trying to run application causes error:

Server Error in '/mvc3test' Application

--------------------------------------------------------------------------------

Could not load type 'System.Web.WebPages.Razor.RazorBuildProvider' from assembly 'System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.

Description: HTTP 500. Error processing request.

Stack Trace: 



System.TypeLoadException: Could not load type 'System.Web.WebPages.Razor.RazorBuildProvider' from assembly 'System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
  at (wrapper managed-to-native) System.Type:type_is_assignable_from (System.Type,System.Type)
  at System.Type.IsAssignableFrom (System.Type c) [0x00000] in <filename unknown>:0 
  at System.Web.Compilation.BuildProvider.RegisterBuildProvider (System.String extension, System.Type providerType) [0x00000] in <filename unknown>:0 
  at System.Web.WebPages.Razor.PreApplicationStartCode.Start () [0x00000] in <filename unknown>:0 
  at System.Web.Mvc.PreApplicationStartCode.Start () [0x00000] in <filename unknown>:0 
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0  

--------------------------------------------------------------------------------
Version information: Mono Runtime Version: 2.10.8.1 (mono-2-10/70a5c95 Wed Feb 8 18:11:45 CET 2012); ASP.NET Version: 4.0.30319.1

bin directory contains required dlls copied from windows:

EntityFramework.dll
mvc3test.dll
System.Web.Entity.dll
System.Web.Helpers.dll
System.Web.Mvc.dll
System.Web.WebPages.dll
System.Web.WebPages.Razor.dll
mvc3test.pdb
EntityFramework.xml

so all required dlls are present

How to run mvc3 or mvc4 application in mono or fix this error ?


回答1:


There are more dll's required than those. You should right click on your project and choose Add Deployable Dependencies, and then check the first two boxes (or all 3 if you're using sql ce)

See this http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx

Oh, and MVC4 is not currently supported by the 2.10.x branch.




回答2:


check copy local = true especially for mvc.dll <private>true</private> under the hint path in the csproj file



来源:https://stackoverflow.com/questions/12665751/how-to-run-mvc3-or-newer-application-in-mono

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!