建筑需要很长时间。怎么打架呢?

时间:2010-10-18 20:36:25

标签: c# build-process development-environment compilation

谈到编译语言(在我的情况下是c#)我认为无论你的开发机器有多高效,问题都会一直存在。构建时间可能或多或少取决于具体的环境,但通常它足以让你的注意力从你的任务转移到像stackoverflow,youtube,twitter等其他东西,它只是非常烦人。

我很高兴Java开发人员因为Java的动态类加载,但是.net(和其他)开发人员可以做些什么来使构建过程不那么痛苦和突兀?

7 个答案:

答案 0 :(得分:8)

我们使用多种构建配置来在速度和全面构建之间进行权衡。

完整构建会执行诸如FX警察分析,ASP.NET编译,所有单元测试项目,实体框架视图预生成等耗时的事情。

“快速构建”通常只需几秒钟,这是使项目运行所需的最低限度。

开发人员根据需要在整个工作流程之间切换完整版本和快速版本。

答案 1 :(得分:4)

是否还必须构建类文件?与编译时相比,这不就是将工作负载放到运行时吗?这不是真正的区别不是吗?更大的软件增长,自然,构建它需要的时间越长,取决于机器而不是语言或框架 - 这是强类型,解释字节代码(或取决于语言/编译器的二进制代码)之类的权衡)而不是每次运行时解释的源代码(就像你有php和python等)。我认为java不会改进很多东西,你需要有一段时间来构建你的应用程序。

我认为在与C和C ++的比较中,C#和java在编译时都有很大的改进。

只是利用时间来懈怠:

Compiling

source

答案 2 :(得分:3)

有些事情要尝试:

  1. 对包含源代码的驱动器进行碎片整理

  2. 从病毒扫​​描程序中排除源代码文件夹

  3. 从Windows搜索索引器中排除源代码文件夹

  4. 禁用您未使用的任何Visual Studio扩展程序

答案 3 :(得分:1)

关于一个人的注意力偏离任务的问题中的评论让我想起了this Joel on Software post.

因此,投资固态磁盘(因为我假设您在开发和调试时正在讨论开发盒上的构建过程)可能有所帮助。

此外,让你的电脑更快一般不会受伤,对吗? :)

答案 4 :(得分:1)

除了许多其他建议,以获得更快的机器,从您的解决方案中删除不必要的项目等,请考虑Visual Studio 2010 +多核机器。在进行构建时,VS2010可以利用所有核心。查看this thread了解有关如何进行设置的更多信息。

答案 5 :(得分:1)

您是在每次都进行重建还是在同一个程序集中拥有所有内容?我正在处理相当大的项目,我的构建时间并不高。我有几个程序集,每次修改项目时我只会修改一些程序集。

如果您发现自己在整个地方修改程序集,则可能会尝试重构代码结构。或许你还没有花时间做单元测试?它们不仅可以帮助您进行测试,还可以获得更好的代码结构(很难通过糟糕的设计测试应用程序)。

另一种方法是使用加速构建的工具,例如:http://www.xoreax.com/

答案 6 :(得分:1)

我参与了一些非常大的C#项目,并且很少看到Debug构建时间超过2分钟。

通常糟糕的时间是静态分析(例如fxcop),单元测试,代码签名(如果使用代码签名服务)等等。控制这些内容的最简单方法是将它们限制为Release版本或为“完全构建”创建单独的构建定义,并从调试和发布构建中排除这些步骤。

如果这些不是您的问题,请查看您的计算机性能,正如其他人所说的那样。碎片,慢速构建磁盘,防病毒等