2012-02-14 78 views
2

我在我们的项目中有一个文件,它定义了一个影响整个项目中大多数其他模块行为的变量。我们称之为custom.h。它看起来像这样:Visual Studio构建配置 - 防止重建

#pragma once 

#define BUILD 3 // 1: personal, 2: select, 3: elite 

在整个项目中,有很多对此变量的引用来控制产品版本之间的行为。更改此值会触发重建大部分项目。我想要做的是为每个版本创建一个单独的构建配置,以便在对版本进行更改时仅重建修改后的文件,而不是整个项目。

如果我有三个配置,每个版本一个,有没有办法让Visual Studio在这个custom.h文件发生变化时不能重建,如果该版本与该配置的内容相匹配? IE,如果我将BUILD设置为3并使用Elite Configuration进行构建,然后将BUILD更改为2并使用选择配置构建,我不希望它重建整个项目,因为Select的中介文件应该已经存在。

配置都有自己的中介目录以及他们自己的输出目录。这感觉就像我接近我所需要的,但在这一点上的一些建议是非常宝贵的。

回答

1

与其更改每个构建的定义,一个选择是使用像您提到的配置并在项目中定义预处理器定义。然后为每个配置使用编译指令。我认为这会让你的增量编译正常工作。

你custom.h应该是这样的:

#pragma once 

#if defined(PERSONAL) 
    #define BUILD 1 
#elif defined(SELECT) 
    #define BUILD 2 
#elif defined(ELITE) 
    #define BUILD 3 
#endif 

预处理器定义可以在项目属性或通过命令行来设置开关取决于你如何建立。

Directives on MSDN

Preprocessor Definitions on MSDN

+0

这很可能得到我,我需要的是 - 我现在做的更改项目/配置。获得为版本生成的中介需要一些时间,但如果这项工作有效,我会通知您。谢谢! – 2012-02-14 19:00:41

+0

你可能最终会有6个配置,然后3个调试和3个发布 – 2012-02-14 19:58:26

+0

这似乎工作到目前为止,所以我要接受这个问题上的答案。我还有一个问题,但它不是直接相关的 - 我很快就会在这里发布。 – 2012-02-14 21:02:08

相关问题