2011-01-12 124 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