优化ASP.NET网站项目的构建性能?

Bli*_*ixt 8 asp.net optimization build-process

我目前正在使用一个ASP.NET CMS,它在App_Code目录中保存了近500个代码文件,以及在网站的各个文件夹中具有代码隐藏的数百个Web表单.这是一个网站项目(不是一个Web应用程序项目),我不愿意改变它,因为这是一个涉及多个开发人员的项目,加上CMS的发布方式.

我正在寻找优化此网站项目构建过程的提示和技巧,因为Visual Studio经常需要重建所有源文件和代码隐藏文件,这可能需要几分钟时间.

有没有办法避免重建所有文件?我是否应该将我们的代码和CMS代码分离到单独的Web应用程序项目(而不是网站项目)?还有其他方法可以提高构建性能吗?

Nic*_*ver 13

如果最简单的解决方案是保持.cs结构尽可能相似,那么我会选择安德烈亚斯建议将App_Code移动到至少另外一个项目中.

Scott Guthrie在VS 2005中发布了一些关于拼写编译的技巧,你没有指定你所使用的版本,但是同样的速度提示适用.他的帖子的第二部分特定于网站项目.

另一个提示是,如果你正在处理页面而不是实际在App_Code目录中的代码,那么有一个可能有用的构建选项.转到项目属性 > 构建 >更改在运行启动页面之前从构建网站到构建页面,这将在您启动调试器时仅构建启动页面.我不确定这种情况是否经常发生,但是如果你的大多数工作发生在页面而不是App_Code,那么这将节省大量的编译时间.

App_Code必须一起构建,你应该避免在那里使用代码隐藏等.其他地方的一切都应该是.请注意:编译时间(至少在调试中)通常比Web应用程序快30-50倍.话虽这么说,你必须在每次代码更改时重新编译整个应用程序,因此存在缺陷......但是在命名空间更改等等的情况下,我理解应变补丁会给你带来的影响.

另外,请记住,当您将代码拆分到其他项目时,除了在编译方面更简单之外,Visual Studio将不需要编译其他依赖项目,除非它们已更改.现在看来,一切都是公平的游戏,因为你的项目中任何可以改变的东西都可能会影响其中的任何东西......但是如果你将它拆分,Visual Studio只会在他们改变或项目时编译你的其他项目他们引用得到重建.


Dav*_*bbo 5

您应该尝试一下我们最近添加的新 OptimizeCompilation 标志。

<compilation optimizeCompilations="true">
Run Code Online (Sandbox Code Playgroud)

请参阅我的博客文章以了解它的内容以及从哪里获取它。除非您使用的是 Win7 或使用 VS2010,否则您需要通过热修复来获取它。