我想减少我的VS.NET项目的编译时间 - 你对如何做到这一点的想法是什么?

6 .net c# compiler-construction visual-studio

我的项目是在Visual Studio 08中用C#开发的.它是一个独立的桌面应用程序,大约6万行代码.曾几何时我喜欢使用这个软件 - 现在,赞美时间已经增长到大约2分钟,它变得远不那么愉快了...

我认为我缺乏C#经验可能是一个因素; 我已经在一个名称空间下开发了所有东西 - 例如,如果有一个结构良好的代码库,编译器只能在进行更改时重新编译代码的必要部分吗?或者我是否需要将各个部分分成单独的项目/ DLL以强制执行此操作?

升级到最新的四核处理器有多大区别?

另一个想法是,对于程序员来说,这可能是一个典型的事情 - 像这样的长编译时间只是必须管理的东西?

提前致谢.

Sam*_*ell 10

增加编译时间的事情:

  • 解决方案中的项目数量与特定项目中的文件数量差异更大.
  • 自定义构建任务可以产生巨大的差异,特别是如果它们生成代码或运行构建后分析(FxCop,StyleCop,Code Contracts).
  • 本机代码项目需要更长时间才能构建

一个包含60K行C#代码而没有启用特殊构建功能的单个项目应该可以在几秒钟内在过去5年以上的任何机器上进行编译.

  • FxCop和StyleCop会大大降低速度,特别是如果你有很多对其他程序集的引用. (2认同)
  • 您是完全正确的-我一直在将混淆过程作为构建后事件进行,这完全导致了我一直观察到的延迟。谢谢你的帮助!! (2认同)

jri*_*sta 4

令我惊讶的是,60k 行代码的编译时间为 2 分钟。我有一个有 500,000 行代码的应用程序,只需要大约一分半钟。确保您没有每次都进行完全重建,并确保您没有在构建之间清理解决方案。正常构建应该执行增量构建,仅重新编译自上次构建以来已更改的代码(以及受该更改影响的任何内容。)

也许其他一些因素可能包括大量使用大型资源(图像?)、最低级别库(即其他所有库使用的库)的广泛变化等。一般来说,在相对现代的机器上,编译 60,000 行 C#除非您要重建整个解决方案,否则代码平均需要不到一分钟的时间。