2011-11-07 72 views
2

我發現了幾個使用Post-Build事件的解決方案。發佈預編譯的ASP.net-MVC VS2010

有沒有辦法來發佈 ASP.NET MVC網站編譯意見(防止第一用戶視圖延遲),但不進行編譯他們在開發環境(編譯網站更快)?

謝謝!

P.S.理想情況下是配置一個鍵在Visual Studio 2010

編輯

我的理解<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />做同樣的事情

<MvcBuildViews>true</MvcBuildViews> 
<EnableUpdateable>false</EnableUpdateable> 

但對於早期版本

發佈功能我.csproj看起來像

... 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 
    <MvcBuildViews>true</MvcBuildViews> 
    <EnableUpdateable>false</EnableUpdateable> 
... 

和視圖預編譯好,但我不能像Asp.net應用程序一樣獲得單個庫部署。這就是爲什麼第一次加載頁面的延遲依然存在......

請幫

回答

2

您可以在生成後事件配置編譯的意見,只有當您在發佈模式下編譯,這樣不會在開發過程中你慢下來(當您大概在調試模式下編譯時)。

例如,.csproj中的以下節點只會在項目編譯爲發佈模式時編譯視圖。

<Target Name="AfterBuild" Condition="'$(Configuration)'=='Release'"> 
    <AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" /> 
    </Target> 
+0

赫克託謝謝你!我發現它編譯的構建視圖,但第一次頁面加載仍然需要比下面的加載更多的時間。是否有可能消除這種延遲? – Cheburek

+0

我不知道任何內置功能。請記住,第一次加載的延遲也可能是由於第一次數據訪問等其他因素造成的。 –

0

或者你可以設置MvcBuildViews爲真,但只做到這一點對某些配置:

<MvcBuildViews>true</MvcBuildViews> 

<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true' And '$(Configuration)'!='Debug'"> 
    <AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" /> 
</Target> 

請注意,我已經添加到And '$(Configuration)'!='Debug'"的條件。