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

时间:2016-05-12 17:12:36

标签: asp.net asp.net-mvc azure azure-devops release-management

有没有办法在Azure Web App上预编译ASP.NET MVC视图(特别是通过VSTS上的Release Management发布时)?

每次观看一次视图后,页面随后会很快呈现。但是第一次延迟对于用户来说可能是一种愚蠢的行为,并且无法通过脚本触摸每个页面。

我不确定是否需要在VSTS上的构建/发布过程中更改某些内容(我正在使用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集成(根据某些文章似乎确实触发了预编译)。

其他想法?

2 个答案:

答案 0 :(得分:23)

您可以添加" / p:PrecompileBeforePublish = true"参数" Visual Studio Build"步: enter image description here

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

答案 1 :(得分:1)

在visual studio 2013+中,选择Build-> Profiles。选择配置文件,然后选择"设置"。在" Configuration"下面,展开"文件发布选项",然后在发布期间检查"预编译"选项。