2013-11-20 143 views
0

在我的.NET MVC 4站点中,我使用#If DEBUG然后在几个地方。最近我注意到DEBUG变量似乎存在一些问题。这个问题持续发生DEBUG指令不起作用

下面是一些代码,我放在一个控制器动作来测试我的问题:

If DEBUG Then 
    ViewData("test") = True 
#Else 
    ViewData("test") = False 
#End If 

如果我跑我的网站多次调试之间交替和释放模式,起初的代码将工作但是经过几次尝试之后,上面的代码块就会陷入思考它处于释放模式,或者被卡住,认为它处于调试模式。此时,如果我处于调试模式或释放模式并不重要,那么这个愚蠢的东西就会附着在任何被卡住的值上,然后转到该值的代码块。

在释放模式下,= True行变灰。在调试模式下= False行灰显。所以这是有效的。但是,如果代码对应于代码被卡住的值,代码仍可能会显示为灰色。

的事情,不解决它: -alternating一些 -restarting VS -restarting计算机 -unloading项目

,这似乎解决它正在改变条件语句或增加更多的#唯一如果DEBUG然后在其他地方编码。就好像编译器不会在条件发生变化之前重新读取条件。这只发生在我正在处理的一个VS项目上,而不会发生在其他项目上。

+0

你检查了吗? http://stackoverflow.com/questions/6912273/if-debug-is-ignored-vb-net-or-c – Jaxedin

+0

是的。另外我的问题是不同的。有时DEBUG被定义,其他时候则不是。取决于代码决定卡住的方式。这似乎是一个随机故障,而不是一个设置。 – greenonion

回答

1

这可能是你从粘贴中遗漏的东西,但在第一次如果你缺少#它应该是#如果调试,而不是调试。