我有非常大的解决方案,每次我尝试调试时它都会编译。
所以我知道我可以在解决方案配置中完全禁用所有项目的构建,但是有没有办法告诉 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/