2012-10-13 22 views
2

任何條件編譯符號在C#中,可以檢查任何條件編譯符號的存在,不只是一個,即檢查在C#

#if ANY_CONDITIONAL_COMPILATION_SYMBOL_IS_DEFINED 
    MessageBox.Show("Don't forget to remove the cc symbols before shipping."); 
#else 
    ... 
+2

並非所有的編譯符號的意思是「這不是一個生產版本」 ...... IMO你需要找到這將是一個問題,而處理這些... –

回答

0

你可以嵌套這些:

#if DEBUG 
#if FOOBAR 
    MessageBox.Show("Don't forget to remove the cc symbols before shipping."); 
#endif 
#endif 

這將需要調試和FOOBAR將被設置爲消息顯示。

沒有辦法檢查任何符號,但是您可以對所有使用的符號執行此操作。

+1

確實有,看我的答案。 – Matten

3

可以使用||操作:可以在MSDN獲得這個預處理符號

#if (DEBUG || SOME_OTHER) 
    MessageBox.Show(...) 
#endif 

更多信息。

您可以使用運算符==(等於),!=(不等於)來測試 的真或假。 True表示符號已定義。聲明 #if DEBUG的含義#if (DEBUG == true)相同。您可以使用運營商& &(與),|| (或),和! (不)評估是否定義了多個 符號。您也可以將括號中的符號和運算符 分組。

0

如果我正確理解你的問題,那麼你想確保發送給客戶端的最終版本應該沒有任何條件編譯參數。

條件編譯參數被指定爲切換到CSC(C#編譯)。構建團隊可以維護一個清單(基本上是單獨的配置),以便在構建解決方案時,不會使用條件編譯參數來構建解決方案/項目。對於內部測試,可以有一個獨立的構建配置。

我不認爲這是在C#的方式在爲項目定義條件編譯參數列舉作爲CC的論點基本上是用於編譯該項目。一旦項目建成,他們就沒有任何意義。