【问题标题】:SparkView Engine on Linux MonoLinux Mono 上的 SparkView 引擎
【发布时间】:2010-02-19 02:29:37
【问题描述】:

我正在尝试将 SparkView 引擎与在 Linux 机器上运行的 ASP.NET MVC 一起使用,但似乎存在解决视图路径的已知问题,例如:

System.InvalidOperationException: The view 'Index' or its master could not be found. The following locations were searched:
~/Views/Home/Index.aspx
~/Views/Home/Index.ascx
~/Views/Shared/Index.aspx
~/Views/Shared/Index.ascx
Home\Index.spark
Shared\Index.spark

问题似乎在于它正在寻找 Home\Index.spark 而不是 ~/Views/Home/Index.spark。

我在谷歌上搜索了一个解决方案,发现一些旧的 cmets 无法正常工作,但想知道是否有人发现了这一点。我正在使用 MVC 1.0。

【问题讨论】:

    标签: asp.net-mvc linux mono spark-view-engine


    【解决方案1】:

    听起来 Spark 编写得不可移植,硬编码“\”作为路径分隔符,而不是使用 System.IO.Path.DirectorySeparatorChar 或 System.IO.Path.Combine (p1,p2)。

    这似乎是一段时间以来的已知问题: http://sparkviewengine.codeplex.com/WorkItem/View.aspx?WorkItemId=3516

    有两种选择

    • 修复 Spark
    • 使用 MONO_IOMAP(虽然这会降低应用程序的速度)

    【讨论】:

    • 还有更多问题。 MONO_IOMAP 没有运行火花。 (已经对代码中的路径进行了修复)因为似乎无法使用单声道进行调试,所以修复此问题将非常耗时。除了路径之外,在解析过程中生成的块似乎也存在问题。
    • 什么意思?在 Linux、Windows 和 Mac 上使用 Mono 2.6 和 MonoDevelop 2.2 调试 OOTB。
    • 我同意olle。在 MonoDevelop 2.2.1/Ubuntu 9.10 下调试 Spark 是一个痛苦的经历。随机挂起,步进经常倒退,测试用例似乎无法在调试器下运行。我怀着良好的意图着手解决 Mono 下的一些火花问题,但在尝试调试工作两天后放弃了。 (顺便说一句,大量的 Spark 单元测试失败了)。
    • Ubuntu 发布了一个旧版本的 Mono,它不包含新的调试器。如果您希望始终拥有最新的软件包,我推荐 openSUSE。或者,您可以从源代码构建 Mono+MD...但如果您这样做,使用并行环境 (is.gd/9uIl5)。
    • 它比简单的路径问题更深入。出于某种原因,在 OSX 上,spark 会截断它在 .spark 文件中找到的一些标记。所以,System.Collections.Generic 就变成了 Generic。我一直在尝试解决问题,但还没有完全解决。我正在使用最新的 MonoDevelop,使用它的 nunit 测试运行器运行测试。
    【解决方案2】:

    令人高兴的是,最​​新版本的 Spark 在 Mono/Linux 上运行良好: http://sparkviewengine.codeplex.com/releases

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-13
      • 1970-01-01
      • 1970-01-01
      • 2017-02-26
      相关资源
      最近更新 更多