2012-02-14 75 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

相關問題