1

我们有一个 Web 应用程序项目(不是网站),直到我们将 batch="false" 添加到 web.config 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 文件中删除所有已编译的文件并重新创建。我不知道这是否正常,但在我看来,这是对所有 Web 应用程序的完全重新编译,这非常慢。(我通过进程资源管理器查看了 wevdev.wevserver.exe 它多次调用 csc.exe)

我怎样才能使编译更快?谢谢...

4

2 回答 2

1

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

此外,尝试在“x86”的构建中更改“任何 CPU”的构建。那应该使编译更快。

于 2008-12-19T14:19:59.463 回答
1

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

您必须注意的另一件事是,任何时候您删除根 Web 应用程序文件夹下的文件/文件夹时,它也会强制重新编译,这对于临时文件来说可能是一个真正的痛苦。

从好的方面来说,一旦你完成了第一次编译,在未访问的页面上将不会有额外的等待编译时间。

于 2008-12-19T21:19:25.653 回答