zoukankan      html  css  js  c++  java
  • 警惕!高版本VS发布时预编译导致Mono中Razor找不到视图

      早前一段时间,一位朋友在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以上 会出现“发布时预编译”这个功能,各位朋友需要多加留意。

  • 相关阅读:
    ASP.Net Core -- Logging
    ASP.Net Core -- 文件上传
    ASP.Net Core -- 依赖注入
    ASP.Net Core -- 领域模型与数据库架构保持同步
    Entity Framework Core -- 种子数据
    ASP.Net Core -- Environment TagHelper
    ASP.Net Core -- 为什么要使用TagHelper?
    dotnet ef 无法执行,因为找不到指定的命令或文件
    ASP.Net Core 3.x -- 中间件流程与路由体系
    ASP.Net Core -- View Components
  • 原文地址:https://www.cnblogs.com/xiaodiejinghong/p/3690429.html
Copyright © 2011-2022 走看看