2014/9/6 技术探讨

    早前一段时间,一位朋友在Q群里面找到我,说它按照《Linux.NET学习手记》的操作,把一个ASP.NET MVC 4.0的项目部署到Mono之后出现Razor无法找到视图的现象。当时费了一番周章才把问题解决。而最近一段时间,群里也有其他的朋友出现相同的问题,随着时间的推移,想必会有越来越多朋友会使用高版本的VS,于是我把当时的情况重现出来,并把解决办法记录下来。


    像往常一样,我们创建了一个MVC4的项目。

    然后添加了一个视图,默认的那个(/Home/Index),然后,再发布到Linux.NET里面。

    然后就出现了如图的这个令人不愉快的页面,我们的Razor找不到视图了。

    而事实上,我们是有这个视图的,并且也不存在常见的大小写和权限问题。

    由于近期为了体验.NET Nactive,装了个VS2013并打上了Update包,所以我把目光聚焦在了这次的更新当中,不排除更新是系统的一些配置诸如Config或者DLL出现变化而导致Linux.NET的不兼容。

    经过一番的排查,我突然发现,VS在发布的地方多了个容易让人忽略的东西(平时折叠起来了)。

    正如图中所见的,选项中多出了“在发布期间预编译”这么一个选项。把这个勾去掉,然后重新发布。再次刷新页面:

    Razor引擎又恢复正常了,视图被重新找到了。 


    目前发现VS2013和VS2012 Update2以上 会出现“发布时预编译”这个功能,各位朋友需要多加留意。

  [ Linux.NET ]   [ MVC ]   [ Mono ]   [ Linux ]
知识共享许可协议 本作品由小蝶惊鸿创作,采用知识共享署名 4.0 国际许可协议进行许可,转载时请保留本文署名及链接。