在 Azure Web App 上预编译 ASP.NET MVC 视图

Precompile ASP.NET MVC views on Azure Web App

有没有办法在 Azure Web 应用程序上预编译 ASP.NET MVC 视图(特别是通过 VSTS 上的发布管理发布时)?

一旦每个视图被点击一次,页面随后就会非常快速地呈现。但是第一次延迟对用户来说可能是个麻烦,而且没有办法编写触摸每个页面的脚本。

我不确定是否需要更改 VSTS 上 build/release 进程中的某些内容(我正在使用 Visual Studio Build 构建步骤和 Azure Web App 发布任务)或者如果我需要在 Azure Web App 实例发布后 运行 一些东西(或其他东西)。

我似乎需要找到一些在发布后调用 aspnet_compiler 的方法(而且我已经在参考云服务上的 Web 角色时看到了这一点),但我无法让它工作。

呼叫

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler -v "/" -p "d:\home\site\wwwroot" 

通过 Azure 门户中的控制台执行得很好(并发现错误,如果有的话)但对启动时间没有任何影响 - 第一次点击视图仍然需要很长时间。

所以这可能不是正确的方向。

我查看了 RazorGenerator(包括 .MSBuild nuget 包)但我无法完全让它工作,但我真的很犹豫是否要对项目进行如此多的更改只是为了在发布时进行预编译。

另请注意,我目前在 VSTS 中使用的是 TFVC,而不是 Git,因此 Kudu/Git 集成(根据某些文章,这似乎确实会触发预编译)不适用于据我所知。

其他想法?

您可以在 "Visual Studio Build" 步骤中添加“/p:PrecompileBeforePublish=true”参数:

然后该任务将在构建过程中调用 aspnet_compiler 并生成用于部署的预编译输出。

在 visual studio 2013+ 中,选择“构建”->“配置文件”。 Select 配置文件,然后选择 "Settings"。在 "Configuration" 下,展开 "File Publish Options",然后选中 "Precompile during publishing" 选项。