如何使#if DEBUG正常工作?

时间:2011-01-12 20:33:38

标签: .net vb.net

我有一个简单的应用程序:

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中运行它时,它会像应该的那样打印“debug”,但是如果我运行.exe,它仍会打印“debug”。我该怎么做才能让它正常工作?

3 个答案:

答案 0 :(得分:7)

它已经“正确”了。使其按照您认为应该的方式工作的方法是将构建配置从Debug更改为Release。然后,当您在Visual Studio(或从可执行文件)中运行它时,它将以您期望的方式说“不在调试中”。

现在,如果您更感兴趣的是在运行时检查是否有附加到应用程序的调试器,您可以使用Debugger.IsAttached查看该程序当前是否正在调试。

答案 1 :(得分:4)

在发布模式下构建exe(从Visual Studio顶部的下拉列表中选择它)。

答案 2 :(得分:3)

将“解决方案配置”更改为“发布”并再次构建。

alt text