На моем сайте .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, над которым я работаю, и не происходит для других проектов.
Вы проверили это? http://stackoverflow.com/questions/6912273/if-debug-is-ignored-vb-net-or-c – Jaxedin
yep. Также моя проблема другая. Иногда DEBUG определяется, а иногда - нет. Зависит от того, каким образом код решает застрять. Это похоже на случайный сбой, а не на настройку. – greenonion