如何在运行前编译cshtml

问题描述 投票:0回答:4

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

.cshtml
文件。

刚刚开始使用

MVC/Razor/Query
移动版,当我在
.cshtml
文件内的代码块中出现错误时,我对“加载页面错误”感到恼火

asp.net-mvc jquery-mobile razor
4个回答
83
投票

在 .csproj 文件的

<MvcBuildViews>true</MvcBuildViews>
元素中设置
<PropertyGroup>


16
投票

除了 true 设置之外,您还需要确保以下设置在您的 csproj 中处于活动状态:

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

5
投票

MvcBuildViews 经常是错误的,因为它不会按照您想要的方式预编译视图。

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

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

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

更新

简而言之,使用 Visual Studio,您必须将发布窗口配置为:


0
投票

是否可以在构建时发现 cshtmls 中脚本部分内的任何错误。因为,当使用MvcBuildViews 时才是正确的。它单独编译cshtml,但不编译脚本部分错误。

© www.soinside.com 2019 - 2024. All rights reserved.