2013-08-21 3 views
0

У меня есть сборка, скомпилированная в режиме отладки, с DEBUG. Если я выполню это непосредственно, из командной строки появится всплывающее окно с указанием пользовательской точки останова. Как я могу игнорировать их или закрыть их автоматически, не останавливая программу?Как вы можете пропустить пользовательские точки останова в .NET?

Я заметил, что когда я запускаю целую серию таких программ от msbuild, с CallTargets и RunEachTargetSeparately="true", диалоги появляются, но затем автоматически уходят. Поэтому я знаю, что есть способ сделать это, но я не смог понять это.

Я ищу способ сделать это, что не требует изменения сборки или перекомпиляции.

+0

Это не только «пользовательские» контрольные точки. Это вызовы ['System.Diagnostics.Debugger.Break'] (http://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.break.aspx) или' Launch'. –

+0

Вам необходимо декомпилировать сборку с помощью 'ildasm.exe' и удалить эти' Debugger.Break(); '(s) из сгенерированного кода вручную, затем удалить любые подписи и перекомпилировать ее с помощью' ilasm'. если вам интересно это, я могу предоставить вам пример – pylover

ответ

1

Если вы должны работать в DBG и у вас есть доступ к исходному коду, вы можете добавить проверку, чтобы убедиться, что отладчик присоединен перед ломкой

например

if (Debugger.IsAttached()) 
      Debugger.Break() 
Смежные вопросы