2009-01-12 20 views
13

我想不同的編譯一個項目,根據的#define定義,像這樣的常數:如何定義常量全球在C#(如DEBUG)

#define USE_COMPONENT_X 

#if USE_COMPONENT_X 
... 

#endif 

,我可以做,在C#。但是當我轉到同一個項目中的另一個文件時,這個常量沒有定義。我能否以某種方式爲所有項目定義一個常量,如DEBUG是如何定義的?

回答

27

您可以添加/ define編譯器開關。

  1. 打開項目的「屬性頁」對話框。
  2. 單擊配置屬性文件夾。
  3. 單擊Build屬性頁面。
  4. 修改「條件編譯常量」屬性。
+1

您也可以直接編輯csproj文件,查找屬性:DefineConstants。 – si618 2009-12-01 06:11:29

+0

你能舉一個例子嗎?我得到「編譯器的參數無效,'...'將被忽略。」錯誤。 – 2014-03-10 13:03:24

0

將它設置在您的IDE中或使用編譯器命令行開關,即對於Mono使用-define

0

希望我沒有離開主題,而不是一個「常量」可能爲常量的類型定義一個接口,然後使用衆多依賴注入框架之一來管理「常量」的定義,注入和生命週期」。

6

您可能想要更進一步並創建不同的項目配置,作爲標準調試和發佈項目配置的變體。生成菜單下的配置管理器可讓您完成此操作。然後,當您處於項目屬性的「構建」選項卡中時,您可以選擇各種配置並設置適用於每種配置的條件編譯常量。當您想要在條件編譯的代碼的各種排列之間來回切換時,這將爲您節省大量時間。