【问题标题】:How can I automaticly compile only projects that have changed when I build my solution in VS2010?在 VS2010 中构建解决方案时,如何仅自动编译已更改的项目?
【发布时间】:2012-03-05 07:51:38
【问题描述】:

我在我公司的一个大型解决方案上进行TDD开发,我们使用Visual Studio 2010,我有编译时间长的问题,因为每次我只对一个文件进行小改动时,它都会编译整个解决方案,它经常编译让我慢了下来。

有没有办法告诉VS2010只编译已经改变的项目或者我的问题的其他一些解决方案,我们的解决方案中有20个项目,我在编码时经常接触其中的2-3个。

谢谢。

【问题讨论】:

  • 我相信构建/避免决策是由每个项目类型实现的。某些项目类型(例如,沼泽标准 C# 和 VB.Net 项目)已经完成了您的要求(前提是您停留在 VS 的单个实例中,而不是关闭和重新打开)。其他项目(例如 VS Installer Projects)将始终重建,据我所知,无法更改。

标签: .net visual-studio-2010 compilation tdd


【解决方案1】:

我不确定您是否可以每次都告诉 VS2010 构建每个文件,但我可以认为以下是一些可能的解决方案,

  1. 当您在进行少量修改后构建解决方案时,如果您不希望每次都构建整个项目的过程,那么您可以选择构建选项而不是重新构建。 Build 会检查一个项目是否是最新的,如果不是那么它将编译。

  2. 您可以模块化您的项目并将它们构建为 dll,这样一旦您在项目中添加了对 dll 的引用,就不必每次都编译它们。

第一个选项是内置于 vs2010 中的,因此您不必做太多事情,但第二个选项是最有效的选项。我不确定我是否完全回答了你,但如果这不是你真正想要的,请告诉我。

【讨论】:

  • @David MZ:另外,如果你不能改变 Ajai 在步骤 2 中提到的项目结构,并且你很确定你只会修改几个项目,你可以尝试: Build > Configuration Manager... > 并取消选中您不想构建的那些项目。但请记住,完成更改后,请检查所有项目以避免进一步的错误。
  • @David MZ:哇.. 这绝对可以。唯一的问题是您应该完全了解要修改的位置。
  • 请记住在签入之前重新启用跳过的项目。对于其他人来说,这可能会浪费大量时间。
【解决方案2】:

查看NCrunch。 NCrunch 在您键入时不断检查代码,并让您知道每一行代码是否被至少一个测试覆盖,以及覆盖它的测试是否通过。 NCrunch 仅在您进行更改时对受更改影响的代码进行后台编译。

您无需停止并手动编译(甚至保存!)您的代码即可完成此操作。只需编写测试代码,然后编写您的生产代码,您就会立即或几乎如此(当然,取决于测试的速度和隔离性)您的工作方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 2021-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多