2013-08-21 21 views
0

我有一个在调试模式下编译的程序集,定义了DEBUG。如果我直接执行这个命令,会弹出一个窗口,提示用户定义了一个断点。我怎样才能忽略这些或让他们自动关闭而不停止程序?如何跳过.NET中用户定义的断点?

我注意到当我从msbuild运行一批像这样的程序时,CallTargetsRunEachTargetSeparately="true"会弹出对话框,但会自动消失。所以我知道有一种方法可以做到这一点,但我一直无法弄清楚。

我正在寻找一种方法来做到这一点,不需要改变程序集或重新编译。

+0

这些不只是“用户定义的”断点。他们调用['System.Diagnostics.Debugger.Break'](http://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.break.aspx)或'Launch'。 –

+0

您需要使用'ildasm.exe'反编译程序集,并从生成的代码manualy中除去这些'Debugger.Break();(s),然后删除任何签名并用'ilasm'重新编译。如果你有兴趣,我可以给你一个例子 – pylover

回答

1

如果你有在DBG运行,您可以访问的源代码,您可以添加检查,看是否有调试器才打破

例如附

if (Debugger.IsAttached()) 
      Debugger.Break()