.NET解决方案的哪些部分会导致编译速度变慢?

时间:2011-10-06 15:25:31

标签: .net visual-studio performance msbuild compilation

我的雇主有一个包含14个项目的解决方案,巧合的是,编译整个应用程序只需要14秒。这使得很难进行更改和重新编译 - 浪费了大量时间。 .NET应用程序中有什么东西我可以寻找更快的编译?或者我可以问一下,哪种工具可以解决这类问题。 (看看msbuild.exe发生了什么)

解决方案详情:

  • 具有Reporting Services的强类型数据集
  • WCF服务
  • C#和VB.NET项目的组合
  • 一个Web应用程序项目
  • 遍布
  • 资源(resx文件)
  • 企业图书馆(如果您需要,我可以具体说明)
  • Microsoft用于向导导航的UIProcess应用程序块
  • Microsoft AJAX Control Toolkit
  • PdfSharp

请询问您是否需要更多详情。

5 个答案:

答案 0 :(得分:3)

每次进行更改时,是否需要重建整个解决方案?重建当前项目是否足够?这可能会加快速度。

我的解决方案有近300个单独的项目,大约需要2分钟才能完成构建,但是当我工作时我只构建我正在进行的项目,节省了大量时间。

答案 1 :(得分:2)

引用其他VS项目时,请确保将“copy local”设置为false,除非您出于特定原因需要它。

您可以创建另一个特定于您正在处理的项目的解决方案。

虽然不是很长时间!

答案 2 :(得分:2)

为了加快构建速度,请卸载您没有工作的项目。在解决方案资源管理器中,右键单击项目,然后单击“卸载项目”。您可以选择多个项目并一次卸载所有项目。在构建时,将不会构建已卸载的项目。

如果某个解决方案包含很多项目,那么您几乎肯定只会在任何给定时间处理其中的一些项目。如果你一次性处理它们,你需要看看你的工作方式。

这与从解决方案中删除项目不同。当您需要更改/重建已卸载的项目时,可以轻松地重新加载它。

答案 3 :(得分:2)

  • 如果您使用源控件和本地文件,例如SVN值得在您的代码目录中禁用防病毒。
  • 复制到输出目录设置为不要复制如果无法使用复制如果更新
  • 如果可能,请删除所有前/后构建事件
  • 如果您将WebSite项目切换到WebApplication
  • 对于卸载和加载项目,您可以使用Solution Load Manager

答案 4 :(得分:2)

编译有时是磁盘绑定的,特别是对于.Net应用程序。在固态硬盘上它会更快。如果您想测试这个理论,请将您的代码放入RAM disk并编译。