2013-11-20 3 views
0

На моем сайте .NET MVC 4 я использую #If DEBUG Затем в нескольких местах. В последнее время я заметил, что, похоже, есть некоторые проблемы с переменной DEBUG. Эта проблема продолжает происходитДиректива DEBUG не работает

Вот код, я помещал в действии контроллера, чтобы проверить мою проблему:

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

Если я запускаю сайт несколько раз чередующихся между отладкой и выпуском режимов, на первый код будет работать но после нескольких попыток блок кода выше застрянет в мысли, что он находится в режиме деблокирования или застрял в мысли, что он находится в режиме отладки. На данный момент не имеет значения, находится ли я в режиме отладки или выпуска, глупая вещь будет цепляться за любое значение, которое оно застряло, и перейти к блоку кода для этого значения.

В режиме деблокирования = True линия выделена серым цветом. В режиме отладки строка = False выделена серым цветом. Так что работает. Но код может по-прежнему запускать greyed out line, если этот код соответствует значению, за которое застрял код.

Вещи, которые не исправить: -alternating некоторые более -restarting VS -restarting компьютер -unloading проекта

Единственное, что, кажется, исправить это меняет условные операторы или добавляя # Если DEBUG Затем закодируйте где-нибудь еще. Это похоже на то, что компилятор не перечитывает условные выражения, пока что-то не изменится. Это происходит только в одном проекте VS, над которым я работаю, и не происходит для других проектов.

+0

Вы проверили это? http://stackoverflow.com/questions/6912273/if-debug-is-ignored-vb-net-or-c – Jaxedin

+0

yep. Также моя проблема другая. Иногда DEBUG определяется, а иногда - нет. Зависит от того, каким образом код решает застрять. Это похоже на случайный сбой, а не на настройку. – greenonion

ответ

1

Это может быть что-то, что вы оставили без пасты, но в первом случае, если вы отсутствуете # это должно быть # Если отладка вместо этого, если Debug.

Смежные вопросы