Asp.net

在 ASP.NET MVC 中編譯視圖

  • December 20, 2008

我想要一個 msbuild 任務來編譯視圖,這樣我就可以查看是否存在編譯時錯誤……編譯時。有任何想法嗎?

坦率地說,我會推薦RazorGenerator nuget 包。這樣,您的視圖會.designer.cs在您保存它們時生成一個文件,並且除了為您的視圖獲取編譯時錯誤之外,它們還被預編譯到程序集中(= 更快的預熱),並且 Resharper 還提供了一些額外的幫助。

要使用它,請在您的 ASP.NET MVC 項目中包含RazorGenerator nuget 包,並在****Tools → Extensions and Updates下的項目下安裝“ Razor Generator ”擴展。

我們使用它,並且使用這種方法每次編譯的成本要少得多。最重要的是,我可能會推薦**RedGate 的 .NET Demon,**它進一步大大減少了編譯時間的影響。

希望這可以幫助。

來自 RC1 的自述詞文件(未被 google 索引)

ASP.NET 編譯器建構後步驟

目前,視圖文件中的錯誤直到執行時才會被檢測到。為了讓您在編譯時檢測到這些錯誤,ASP.NET MVC 項目現在包含一個 MvcBuildViews 屬性,預設情況下該屬性是禁用的。要啟用此屬性,請打開項目文件並將 MvcBuildViews 屬性設置為 true,如下例所示:

<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <PropertyGroup>
   <MvcBuildViews>true</MvcBuildViews>
 </PropertyGroup>

注意 啟用此功能會增加建構時間的一些成本。

您可以通過執行以下步驟更新使用先前版本的 MVC 創建的項目以包括視圖的建構時驗證:

  1. 在文本編輯器中打開項目文件。
  2. 在最上面的元素下添加以下<PropertyGroup>元素: <MvcBuildViews>true</MvcBuildViews>
  3. 在項目文件的末尾,取消註釋<Target Name="AfterBuild">元素並修改它以匹配以下內容:
<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
   <AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" />
</Target>

引用自:https://stackoverflow.com/questions/383192