【发布时间】:2018-03-13 11:28:20
【问题描述】:
我们目前在 TFS 上运行构建。是否可以在 TFS 构建期间预编译视图?
【问题讨论】:
标签: asp.net asp.net-mvc tfs azure-devops azure-pipelines
我们目前在 TFS 上运行构建。是否可以在 TFS 构建期间预编译视图?
【问题讨论】:
标签: asp.net asp.net-mvc tfs azure-devops azure-pipelines
可以在 TFS 上预编译 Asp.net MVC 视图。
您需要Extend the Visual Studio Build Process,引入一个新的 BuildViews 目标,该目标仅在 MvcBuildViews 属性设置为 true 时才会执行。
<Target Name="BuildViews" Condition="'$(MvcBuildViews)'=='true'" AfterTargets="Build">
<Message Importance="normal" Text="Precompiling views" />
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>
参考以下文章,更多信息请参考:
Turn on Compile-time View Checking for ASP.NET MVC Projects in TFS Build 2010
【讨论】:
MvcBuildViews 在运行 TFS 构建时遇到了一些由 obj 文件夹中的一些杂散 web.config 文件引起的错误,我设法通过使用 PrecompileBeforePublish 解决了这个问题。
如果您将其添加到正确的PropertyGroup,则以下代码仅适用于 TFS 构建。
<MvcBuildViews Condition="'$(TF_BUILD)'=='true'">false</MvcBuildViews>
<PrecompileBeforePublish Condition="'$(TF_BUILD)'=='true'">true</PrecompileBeforePublish>
我在以下website 上找到了解决方案,它还给出了以下警告:
[PrecompileBeforePublish] 仅受“新”Web 发布管道堆栈(VS2010 SP1 + Azure SDK 或 VS2012 RTM)支持。如果您使用的是 VS2010 RTM,则需要使用其中一种替代方法。
【讨论】: