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

在Azure Web App上预编译ASP.NET MVC视图,asp.net,asp.net-mvc,azure,azure-devops,release-management,Asp.net,Asp.net Mvc,Azure,Azure Devops,Release Management,是否有一种方法可以在Azure Web应用程序上预编译ASP.NET MVC视图(特别是在通过VST上的发布管理发布时) 一旦每个视图都被点击一次,页面就会很快呈现出来。但对于用户来说,第一次延迟可能是一件糟糕的事情,而且没有办法为每个页面编写脚本 我不确定是否需要在VST上的构建/发布过程中更改某些内容(我使用的是Visual Studio构建build步骤和Azure Web Apprelease任务),或者是否需要在Azure Web App实例发布后在其上运行某些内容(或者完全是其他内容

是否有一种方法可以在Azure Web应用程序上预编译ASP.NET MVC视图(特别是在通过VST上的发布管理发布时)

一旦每个视图都被点击一次,页面就会很快呈现出来。但对于用户来说,第一次延迟可能是一件糟糕的事情,而且没有办法为每个页面编写脚本

我不确定是否需要在VST上的构建/发布过程中更改某些内容(我使用的是
Visual Studio构建
build步骤和
Azure Web App
release任务),或者是否需要在Azure Web App实例发布后在其上运行某些内容(或者完全是其他内容)

似乎在发布后找到调用
aspnet\u编译器
的方法可能是我所需要的(我在云服务上的Web角色中也看到了这一点),但我无法实现这一点

召唤

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler -v "/" -p "d:\home\site\wwwroot" 
通过Azure门户中的控制台,执行得很好(如果有错误,会发现错误),但对启动时间没有任何影响-第一次访问视图仍然需要很长时间

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

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

还请注意,我目前在VST中使用的是TFVC,而不是Git,因此Kudu/Git集成(根据一些文章,它似乎触发了预编译)据我所知不可用

其他想法?

您可以在“Visual Studio构建”步骤中添加“/p:precompilebeforepublicsh=true”参数:


然后,该任务将在生成过程中调用aspnet_编译器,并为部署生成预编译输出。

在visual studio 2013+中,选择“生成->配置文件”。选择配置文件,然后选择“设置”。在“配置”下,展开“文件发布选项”,然后选中“发布期间预编译”选项

我想知道在发布任务后在站点上运行基于云的web性能测试是否会对您的视图造成第一次缓慢的影响?当Azure应用程序服务直接通过
msdeploy.exe
call发布时,是否可以使用
precompilebeforepublich
参数?有趣。有人告诉我这不管用。但显然是这样。太棒了。谢谢这将为每个视图创建一个dll。如果您还将/p:UseMerge=true/p:SingleAssemblyName=AppCode添加到参数中,您将只有一个dll,加载速度更快。我正在尝试,但在Azure DevOps中我遇到以下错误:##[错误]Project\obj\release\aspnetcompilemerge\source\web.config(52,0):Error ASPCONFIG:在应用程序级别之外使用注册为allowDefinition='MachineToApplication'的节是错误的。此错误可能是由于虚拟目录未在IIS中配置为应用程序引起的。@Albert您好,您是如何解决此问题的?我和你遇到了同样的问题。也别忘了取消勾选“允许预编译站点可更新”。