System.Diagnostics.Debug.WriteLine被跳过了

4

我正在一个ASP.NET MVC/C#项目中使用Visual Studio 2013。

我正在使用以下代码将输出内容输出到输出窗口:

System.Diagnostics.Debug.WriteLine

但由于某些原因,VS已经停止运行此代码行。我正在调试模式下执行。如果我逐步执行代码,调试器将跳过此行。

这是否受某个设置的控制?我已经在网上搜索了一番,但没有明显的线索。

1个回答

2

前往项目设置,查看Define DEBUG constant前面是否有勾选标记。默认情况下应该会有勾选标记,但很可能没有。

如果未定义DEBUG常量,则编译器会删除您所引用的方法。这就是为什么调试器表现得好像代码不存在的原因。


是的 - 它已经被检查过了。我应该说自从我创建这个项目以来它一直完美地工作,所以显然有些东西已经改变了。问题是我不知道是什么... - wbm
1
使用源代码控制并进行定期提交将有助于您查看所做的更改。 - Lukazoid
Anri - 那行代码已经起作用了。你能否给我更多关于这个命令控制的信息,它可以在IDE或其他地方进行配置吗?我仍然不明白为什么这种行为会突然改变。 - wbm
@wbm 你需要了解条件编译符号。简而言之,有两种方法(据我所知)来定义这些符号。第一种是使用 #define 指令;第二种是使用编译器命令。正如这里所说:http://msdn.microsoft.com/en-us/library/System.Diagnostics.Debug(v=vs.110).aspx - Anri
@wbm 现在关于你的问题,这个勾选框控制着是否将此DEBUG符号定义为编译器参数。如果它不起作用,我建议你尝试以下方法。1. 取消勾选,保存,再次勾选,保存。2. 确保你正在编辑正确的配置。当项目首选项打开时,你可以在其中切换配置(Debug, Release)。3. 尝试以文本形式打开项目文件,并查找“DEBUG”,看看它是否存在,并与另一个新创建的项目进行比较。 - Anri
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接