我目前正参与一个ASP.NET项目,该项目包含大约40个项目。我们正在克隆的Virtual PC环境中进行所有开发,因此所有开发人员都具有相同的设置。这一切都很好,管理依赖关系很容易,但构建解决方案的速度非常慢。 Virtual PC只能使用一个CPU,因此我实际上只使用了一半的计算机资源。
从构建到完整页面加载需要整整3分钟...随着项目的增长,它每天都在变得越来越糟糕。修复简单的事情开始花费很长时间并且个人而言,我一直在等待,因为在计算机编译时我无法真正工作。
有没有办法在多台计算机上分发我的构建以加快构建过程?
SSD的构建时间会明显改善吗?
还有其他加速构建的方法吗?
注意:我尝试使用 ngen 预编译静态依赖项,但后来读到ASP.NET不支持 ngen 。我使用的是Visual Studio 2008,虚拟环境中没有防病毒软件。
答案 0 :(得分:6)
通过执行以下操作,您可以大大减少等待ASP.NET构建的时间:
希望它有所帮助!
Wagner Danda da Silva
答案 1 :(得分:4)
以下是使用ASP.NET加快构建时间的另一个提示:
希望它有所帮助!
Wagner Danda da Silva
答案 2 :(得分:3)
您是否每次都需要重建所有40个项目。
您可以配置在解决方案配置设置中构建的内容。
即。如果您的更改仅在您的WebUI项目中,并且其他39个项目未更改,则可以创建仅在重建Web应用程序的构建配置。
答案 3 :(得分:2)
Scott Gu对此有一个非常有帮助的帖子:
Tip/Trick: Optimizing ASP.NET 2.0 Web Project Build Performance with VS 2005
斯科特还有另一篇关于此硬盘速度的文章,它也对Visual Studio的一般性能有影响:答案 4 :(得分:2)
不要在解决方案中放置太多项目。仅在代码在不同进程或不同计算机上运行时才创建新项目。在大多数情况下,创建这么多项目是没有用的。项目数量是msbuild中最显着的减速。
答案 5 :(得分:1)
你没有提到你的Visual Studio版本,但如果它是2005年你可能想考虑升级到2008.在我的情况下,这减少了大型(30+项目)解决方案的构建时间。
另一种选择是预先构建一些不再更改的库,并引用已编译的dll而不是项目。
答案 6 :(得分:1)
我们遇到了类似的情况,我发现我们的虚拟机受到严重限制,因此尽管每个虚拟机都运行在一个CPU上,但它们不允许充分利用该CPU。我设法在一个物理上运行3个虚拟对象,所有运行速度都提高了100%。
我还会考虑减少你的项目数量。我们的主要解决方案有40个项目,我一直在慢慢整合这些项目,并确保新开发项目尽可能适应现有项目。这方面的主要元凶是webservices,其中每个服务最初都是在一个单独的项目中创建的。我现在正在将所有新的Web服务添加到一个项目中,并逐渐将其他项目移动到其中。
答案 7 :(得分:1)
您可能还会考虑切换到使用多个处理器的VMware Workstation。我目前正在使用具有两个双处理器VM的设置,并且所有四个都可以使用。
答案 8 :(得分:1)
我们在公司所做的是使用文件引用,因此只需要构建已更改的项目,并且在任何给定时间我的解决方案中的项目不超过10个,大多数是2~3个。
我们还为每次签到都构建了我们的主干,并为开发人员提供了批处理文件来提取最新的dll。
当然,这并不能阻止痛苦的装配参考错误的发生,但是一段时间后它们会变成一种麻烦而不是问题。
答案 9 :(得分:0)
您是否尝试过调整虚拟PC?
http://www.windowsnetworking.com/articles_tutorials/Tuning-Virtual-PC-Performance.html
旧文章,但要点仍然正确。
我发现,在类似的情况下,为VPC磁盘映像配备一个单独的硬盘可以显着提高性能,尤其是在删除一些限制时。
问题可能不是Visual Studio,而是编译资源密集的事实。