【问题标题】:Publishing Pre-Compiled ASP.net-MVC VS2010发布预编译的 ASP.net-MVC VS2010
【发布时间】:2011-11-07 14:46:31
【问题描述】:

我找到了几个使用 Post-Build 事件的解决方案。

有没有办法发布 ASP.NET MVC 网站编译视图(以防止第一个用户查看延迟)但不编译 他们在开发环境中(更快地编译站点)?

谢谢!

附:理想情况下是在 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 应用程序那样获得用于部署的单个库。这就是为什么仍然存在首次加载页面延迟的原因......

请帮忙

【问题讨论】:

    标签: asp.net-mvc visual-studio-2010 deployment


    【解决方案1】:

    您可以将构建后事件配置为仅在以发布模式编译时编译视图,这样它就不会在开发过程中减慢您的速度(当您可能在调试模式下编译时)。

    例如,.csproj 中的以下节点将仅在项目以 Release 模式编译时编译视图。

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

    【讨论】:

    • 赫克托谢谢!我发现它在构建时编译视图,但第一次页面加载仍然比后续加载花费更多时间。是否可以消除这种延迟?
    • 我不知道有任何内置功能。请记住,第一次加载的延迟也可能是由于第一次数据访问等其他因素造成的。
    【解决方案2】:

    或者您可以将 MvcBuildViews 设置为 true,但仅针对某些配置进行:

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

    请注意,我已将 And '$(Configuration)'!='Debug'" 添加到条件中。

    【讨论】:

      猜你喜欢
      • 2016-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多