代码之家  ›  专栏  ›  技术社区  ›  yusuf

为什么每次我在vs 2008中构建webapp时,IIS开发服务器都会重新编译我的所有web应用程序?

  •  1
  • yusuf  · 技术社区  · 16 年前

    我们有一个Web应用程序项目(而不是网站),直到我们向web.config web development server添加batch=“false”的那天,Web开发服务器正在编译所有的Web应用程序,而不是所请求的页面。

    <compilation debug="true" batch="false">
          <assemblies>
            ...
          </assemblies>
    </compilation>
    

    这使我们更快。但我不知道发生了什么变化(我已经从存储库中检查了foo.cproj和web.config,比较了旧版本,但没有发现任何东西会导致这种缓慢)。

    我查看了%temp%/temporary ASP.NET文件;在编译Web应用程序(不是重新编译,shift+f6)之后,我请求了一个页面,然后我看到Web服务器从%temp%/temporary ASP.NET文件中删除了所有已编译的文件并重新创建。我不知道这是否正常,但在我看来,这是对所有Web应用程序的完全重新编译,这非常缓慢。(我通过Process Explorer查看了wevdev.wevserver.exe,它多次调用csc.exe)

    如何使编译更快?谢谢。。。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Patrick de Kleijn    16 年前

    有一个名为“启用编辑并继续”的ASP.NET开发服务器选项,可用于32位版本的NET CLR。在Visual Studio中关闭。

    另外,尝试在“x86”的生成中更改“any cpu”的生成。这样可以加快编译速度。

        2
  •  1
  •   Corey Downie    16 年前

    我相信这是使用Web应用程序项目的一部分。任何时候构建应用程序时,都会重新编译整个站点。您应该看到,与“网站”不同,Web应用程序都编译为单个dll(加上引用)。

    另一件你必须注意的事情是,每当你删除根web app文件夹下的一个文件/文件夹时,它也会强制重新编译,这对于临时文件来说可能是一种真正的痛苦。

    另一方面,一旦您完成了第一次编译,就不会再等待未访问页面的编译时间了。