Debug.Assert () срабатывает только при переходе через него - PullRequest
6 голосов
/ 21 октября 2011

Я использую Visual Studio 2010 для написания утверждения .NET:

Debug.Assert(false, "Testing Debug.Assert");

Когда я ставлю точку останова в этой строке кода, подождите, пока точка останова не достигнет, и затем программа продолжитзапустить, все работает нормально: всплывает диалоговое окно «Ошибка подтверждения».Однако когда я удаляю точку останова и перезапускаю приложение, оператор Debug.Assert () просто игнорируется.

Кто-нибудь знает, что может вызвать это очень странное поведение?

Ответы [ 3 ]

3 голосов
/ 21 октября 2011

Мой коллега сразу понял, в чем проблема. Мне пришлось включить флаг «Включить только мой код» в «Visual Studio 2010 / Меню / Параметры / Отладка / Общие». По-видимому, это ошибка в Visual Studio 2010 ".

2 голосов
/ 03 мая 2012

У меня была такая же проблема.Использование Trace.Assert работает как положено.


Ну, Trace.Assert начал проявлять то же поведение в следующем сеансе отладки.


Ах, обнаружил проблему.

  • Если установлен флажок «Включить только мой код».

    • Если в диалоговом окне «Исключения» в диалоговом окне «Исключения» выбрано «Брошено» для «Исключений общеязыкового языка» (Ctrl + Alt + E)Утверждение будет брошено.

    • Если флажок не установлен, Утверждение будет брошено.

  • С 'Enable Just MyКод "снят с проверки.

    • Если установлен флажок" Брошенный ", Assert не будет брошен.

    • Если флажок" Брошенный "не установлен, Assert будетбыть брошенным.

Следовательно, Assert не будет выброшен, если флажок «Enable Just My Code» снят, а для параметра «Thrown» выбрано «Исключения времени выполнения общего языка»..

0 голосов
/ 30 апреля 2013

Ответы, приведенные здесь, не помогли, но я обнаружил, что это было так же просто, как проверка опции «Определить константу отладки» для конфигурации отладки в настройках сборки проекта:

The Define DEBUG constant option in project's build settings

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...