2013-08-21 24 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()