c# - 如何配置 VS 只编译更改的代码

标签 c# visual-studio compilation

我有非常大的解决方案,每次我尝试调试时它都会编译。
所以我知道我可以在解决方案配置中完全禁用所有项目的构建,但是有没有办法告诉 Visual Studion 只编译更改的代码?
我确定是的。

谢谢你提前。

最佳答案

正如 Marnix 和 Anton 所说,这是 VS 通常所做的。但是,如果您的解决方案中有很多相互依赖的项目,并且您更改了一个组件,该组件将被所有或大多数其他项目使用,则它必须再次构建其他项目以确保一切按预期工作.

更新

因此,如果它开始重新编译,即使您没有进行任何更改,我们也需要了解 VS 如何尝试找出它需要在增量构建上执行的操作。

为此,它只检查每个文件的日期时间以及是否有任何更改。如果是,请重新编译该文件及其所有相关文件(例如,stdafx.h 中的更改将导致完全重建,因为通常每个源文件都会引用该文件)。

但这种行为也有异常(exception)。例如,安装项目将始终重新构建,即使没有进行任何更改(由于这个事实,我通常将安装项目从构建过程中排除,仅在需要时手动启动它)。

因此,如果您只有通常支持增量构建的 C/C++、C#、VB 等项目,那么即使您不做任何更改,也必须在两个构建之间进行某些更改。

这里有一些可能性:

  • 对源文件进行更改的构建前或构建后命令
    • 这可能是一个自动更新,将您的 repo 中的修订号添加到 AssemblyInfo 文件的资源中。
    • 或复制/删除命令,对您的目录结构进行一些更改(我曾经使用它删除预构建命令中的输出目录,以强制在每次构建时重建)。
  • 汇编版本的自动增量器
    • 可能通过使用 [assembly: AssemblyVersion("1.0.*")] 或其他一些外部进程来增加内部版本号

如果上述步骤之一发生在所有或大部分其他项目所依赖的模块上,那么一切都需要重建。

关于c# - 如何配置 VS 只编译更改的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5402882/

相关文章:

linux - 进行全局选项

c# - 以编程方式检查构建配置

c# - 如何使用 C# 访问 Outlook 用户的日历?

C# 将数据保存在分隔字符串中的不良做法

c# - 转换为 YUV/YCbCr 颜色空间 - 许多版本

visual-studio - 代码片段未显示在 IntelliSense 中

c++ - 如何在 Xcode 中更改构建线程的数量?

c++ - _HUGE 和 __IMP__HUGE 在 "math.h"

c# - 无限循环中的 .NET 正则表达式

java - 集成 PHP 和 Java?