2011-01-12 125 views
0

我有一個簡單的應用程序:如何讓#if DEBUG工作?

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 

#If DEBUG Then 
lblDebug.Text = "Debug" 
#Else 
    lblDebug.Text = "Not in debug" 
#End If 

現在,當我在VS運行它,它打印「調試」像它應該,但如果我運行.exe,它仍然打印「調試」。我需要做些什麼才能使這個工作正確?

回答

7

它已經在「正確」。使它工作的方式你認爲它應該是將您的構建配置從調試更改爲發佈。然後,當你在Visual Studio中運行它時(或者從可執行文件中運行它),它會以你期望的方式說「不在調試中」。

現在,如果您更感興趣的是在運行時檢查是否有調試器附加到應用程序,則可以使用Debugger.IsAttached來查看程序當前是否正在調試。

+0

甚至不知道Debugger.IsAttached。謝謝 – broke 2011-01-12 20:41:07

4

在發佈模式下構建exe(從Visual Studio頂部的下拉列表中選擇它)。

3

將您的「解決方案配置」更改爲發佈並重新構建。

alt text