【问题标题】:How to compile cshtml before runtime如何在运行前编译cshtml
【发布时间】:2012-11-09 00:57:24
【问题描述】:

我相信我在某处读到了其中一个项目文件中的设置,允许您在构建 Visual Studio 项目时编译 .cshtml 文件。

刚开始使用MVC/Razor/Query Mobile,当我在.cshtml 文件中的代码块中出现错误时,我对“加载页面错误”感到恼火

【问题讨论】:

标签: asp.net-mvc jquery-mobile razor


【解决方案1】:

在 .csproj 文件的 <PropertyGroup> 元素中设置 <MvcBuildViews>true</MvcBuildViews>。

【讨论】:

  • 在 UI 中的任何地方设置它?
  • 在 Visual Studio 的 UI 中?我不知道。
  • 这可行,但我注意到它会导致不同的编译器错误,所以我不得不将其关闭。
  • 您确定您的编译器错误与视图编译问题无关吗?上次我使用这个功能时,当我的视图没有编译时,我收到了奇怪的编译错误消息......
  • 其实这是我遇到的问题:stackoverflow.com/questions/4725387/…
【解决方案2】:

除了真正的设置,您还需要确保您的 csproj 中的以下设置处于活动状态:

<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>

【讨论】:

  • 错误无法映射路径'/'和无法映射路径'temp'是什么原因?
【解决方案3】:

MvcBuildViews 通常是错误的,因为它不会按照您想要的术语预编译视图。

MvcBuildViews 临时构建视图并将构建结果返回给构建过程以在 VS 错误窗口中显示可能的构建错误。

为了实现真正的预编译视图以用于生产发布,您必须在项目的 Publish Web App 配置窗口中正确设置特定值。

请参阅here 了解有关如何执行此操作的主要文章,并参阅here 了解如何通过 msBuild 和 Azure 更深入地执行此操作。

【讨论】:

    猜你喜欢
    • 2019-12-12
    • 2012-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-22
    相关资源
    最近更新 更多