停止Debug.Assert?

Lev*_*i H 5 c# debugging

我正在使用一个库,当我做一个证书时,它试图做Debug.Assert,无论如何要阻止它使用Debug.Assert?

Eri*_*ert 10

如果你可以重新编译库,那么Marc是正确的; 只是在没有定义DEBUG的情况下重新编译它,所有的断言都会消失.

如果你不能这样做,因为假设你没有库的源代码,那么你可以让你的程序清除跟踪监听器.当断言发射时,它仍然会发射,但它什么都不做.(当一个断言触发时,它只是检查以查看哪些跟踪侦听器已注册,并通知它们有关断言.没有侦听器意味着什么都没有发生.)

在这种情况下,您可以考虑使用自己的客户跟踪侦听器替换默认跟踪侦听器,这样可以将断言记录到文件中.这样,您可以查看日志,并查看在库的调试版本的"正常"执行中会弹出哪些断言.


Mar*_*ell 8

如果在没有DEBUG定义符号的情况下编译它,则不会Debug.Assert编译任何调用(方法定义为[Conditional("DEBUG")])