问题
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