1


我试图将 .NET 4.5 MVC4 项目部署到 Mono 3.2 XSP 并遇到异常。

软件:

  • Ubuntu Linux 13.04
  • 从源代码编译的 Mono 3.2.1
  • XSP4 3.0.11 从源代码编译
  • 异常文本:

    CS1701: Warning as Error: Assuming assembly reference `System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' matches assembly `System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. You may need to supply runtime policy
    

    堆栈跟踪:

    at System.Web.Compilation.AssemblyBuilder.BuildAssembly (System.Web.VirtualPath virtualPath,     System.CodeDom.Compiler.CompilerParameters options) [0x00000] in <filename unknown>:0 
    at System.Web.Compilation.AssemblyBuilder.BuildAssembly (System.CodeDom.Compiler.CompilerParameters options) [0x00000] in <filename unknown>:0 
    at System.Web.Compilation.AppResourcesAssemblyBuilder.BuildDefaultAssembly (System.Collections.Generic.List`1 files, System.CodeDom.CodeCompileUnit unit) [0x00000] in <filename unknown>:0 
    at System.Web.Compilation.AppResourcesAssemblyBuilder.Build (System.CodeDom.CodeCompileUnit unit) [0x00000] in <filename unknown>:0 
    at System.Web.Compilation.AppResourcesCompiler.CompileGlobal () [0x00000] in <filename unknown>:0 
    at System.Web.Compilation.AppResourcesCompiler.Compile () [0x00000] in <filename unknown>:0 
    at System.Web.HttpApplicationFactory.InitType (System.Web.HttpContext context) [0x00000] in <filename unknown>:0 
    

    有人解决了吗?如何摆脱它?

    4

    1 回答 1

    1

    我发现让 MVC3 项目在 Mono 上运行的唯一方法是将一些 Microsoft 程序集复制到 Mono 项目中,例如(如果使用 Razor):

    • 系统.Web.Mvc
    • System.Web.Razor
    • System.Web.Helpers
    • System.Web.WebPages.Deployment
    • System.Web.WebPages
    • System.Web.WebPages.Razor

    由于您使用的是 MVC4,因此可能会出现相同的情况 - 这就是异常似乎暗示的内容(它看到版本 1 并期待 4)。您可能需要不同的或附加的程序集。看看这里,你可能会找到一些额外的帮助。

    此外,Mono 上仍然不完全支持 .NET 4.5(MVC4 上没有异步)。期望在那里找到其他问题。

    于 2013-10-04T10:11:50.400 回答