我有一個基礎庫來維護多個版本。我需要在另一個版本上工作時,我會執行SVN切換。VS2008:具有定義的多個構建配置不能按預期工作
我沒有多個版本的測試應用程序解決方案,因此我認爲對於不同的版本,我可以執行多個解決方案/項目配置,以定義該版本的符號,以便能夠在我的測試中使用特定於版本的代碼。
目前,我在測試應用程序解決方案中具有以下構建配置:調試,發佈,DebugV10,ReleaseV10,DebugV15,ReleaseV15。在* V10和* V15配置中,我爲兩個具有特定版本測試代碼的項目創建並選擇了相應的* V10和* V15 PROJECT配置(並非針對所有項目,大多數在解決方案中運行正常的調試/發佈配置-Vx組態)。
在那些項目配置中,我輸入了相應的條件編譯符號(VERSION10和VERSION15)。
現在在我的項目中的代碼,我去喜歡
#if VERSION10
// do v1.0 stuff
#elif VERSION15
// do v1.5 stuff
#else
// do trunk stuff
#endif
但顯然VS不能識別的符號。即使是一個簡單的#if DEBUG也不能工作,所有的定義在所有Debug *項目配置中檢查了DERBUG常量。
這是一件已知的事情嗎?我能做些什麼呢?
你如何定義符號?如果它只是定義(沒有任何價值),不應該使用**#如果已定義**?此外,有時候符號被正確識別,但VS不能正確顯示,即不能正確顯示灰色。 – 2010-11-17 08:58:25
我在項目屬性「構建」 - 條件編譯符號的字段中定義了符號。這不僅僅是可視化,條件代碼實際上不是在任何配置下編譯的,即使在正常的,未修改的調試版本配置(僅用於複製設置)中也不是正常的#if DEBUG代碼。 – 2010-11-17 09:45:28
btw:**#如果已定義**不是C#中的有效指令。 – 2010-11-17 09:54:16