2012-12-27 36 views
5

可能重複:
C# if/then directives for debug vs release在Visual Studio中如何爲調試版本和發行版本添加特殊情況?

我工作的一個C#項目,我想知道如何在調試模式添加特殊情況下,當我運行該程序在調試器我有權訪問我通常在發佈版本中不具備的某些資源。

這裏是一直在發生的事情,我在程序中內置了管理工具,它們只是用於調試,就像一個測試按鈕,並將我想要的任何代碼放入它中。發生了什麼事情,我忘了隱藏該按鈕,然後將其釋放給客戶端。我希望僅在測試按鈕處於調試模式時運行,但不能在其他時間運行。

這將打開我的管理工具

rpg_Admin.Visible = true; 

這會關閉我的管理工具

rpg_Admin.Visible = false; 

有沒有一種簡單的方法來做到這一點?

if Debug Mode 
    rpg_Admin.Visible = true 

也許當它在Visual Studio中運行它

rpg_Admin.Visible = true 

,但是當它在它自己的

rpg_Admin.Visible = false 

我在Visual Studio中運行2010

謝謝運行。

+0

親愛的mods:在我看來,這不是同一個問題。它的類似,但不是一個確切的愚蠢。 –

回答

4

使用你的榜樣,加入一些#如果/的#else/#endif指令,像這樣:

#if DEBUG 
    rpg_Admin.Visible = true; 
#else 
    rpg_Admin.Visible = false; 
#endif 

你可以還將System.Diagnostics.ConditionalAttribute屬性應用於僅用於調試版本的任何代碼。這將完全刪除發佈版本中的任何不必要的代碼。例如:

[Conditional("DEBUG")] 
public static void MyDebugOnlyMethod() 
    { 
    } 
+0

這就是我一直在尋找的東西!我不知道那很容易。 –

+0

好吧,除非你知道如何去做,否則沒有什麼容易的!這就是爲什麼Stack Overflow太棒了。 –

1

包裹調試代碼中的#ifdef DEBUG /#ENDIF:

#ifdef DEBUG 

// debug only code here 

#endif 
+0

哼,出於某種原因#ifdef不是很受歡迎,它給了我很多錯誤。是否有一個特殊的地方,我正在調用InitializeComponent();以我的形式。 –

+0

粘貼你的代碼。你應該可以在任何地方使用ifdef ... –

相關問題