为什么IIS开发服务器每次在VS 2008中构建我的Web应用程序时都会编译我的所有Web应用程序?

时间:2008-12-17 08:58:29

标签: asp.net compiler-construction web-development-server

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

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

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

我查看了%temp%/ Temporary ASP.NET Files;在我编译我的Web应用程序(不重新编译,Shift + f6)之后,我请求一个页面,我看到Web服务器从%temp%/ Temporary ASP.NET Files中删除所有已编译的文件并重新创建。我不知道这是否正常,但在我看来,所有网络应用程序的完整重新编译,这是非常缓慢的。 (我通过进程资源管理器查看了几次调用csc.exe的wevdev.wevserver.exe)

如何更快地进行编译?感谢...

2 个答案:

答案 0 :(得分:1)

ASP.NET Development Server有一个名为“Enable Edit and Continue”的选项,可用于32位版本的.NET CLR。在Visual Studio中关闭它。

另外,尝试在“x86”的构建中更改“Any CPU”的构建。这应该使编译更快。

答案 1 :(得分:1)

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

您需要注意的另一件事是,在您删除根网络应用程序文件夹下的文件/文件夹时,它也会强制重新编译,这对于临时文件的对接可能是一个真正的痛苦。

一旦你完成了第一次编译,就没有额外的等待在未访问的页面上编译时间。