在构建版本时,C#中的Debug.WriteLine输出到哪里?

too*_*ive 22 c# debugging

我在我的代码中放了很多Debug.WriteLine用于调试目的.当我准备构建发布时,这些Debug.Write会影响发布版本,它们输出到哪里?

Jim*_*ert 19

Debug.WriteLineConditional属性注释.(见MSDN)

ConditionalAttribute告诉编译器,除非不生成的代码DEBUG标志被提供.


dod*_*sky 14

MSDN:"ConditionalAttribute属性应用于Debug的方法.支持ConditionalAttribute的编译器忽略对这些方法的调用,除非"DEBUG"被定义为条件编译符号.请参阅编译器的文档以确定是否支持ConditionalAttribute和语法用于定义条件编译符号."

因此,如果您的发行版配置不包含DEBUG符号,则在编译期间将忽略Debug.WriteLine调用,并且不会输出.


asa*_*yer 8

如果将它们切换为Trace.WriteLine,则可以在app/web.config文件中定义任意侦听器.

  • +1因为这是通过配置输出内容的首选方式.虽然,它需要在编译时定义`TRACE`标志*并且*无论构建类型如何,所有消息都被编译成代码.`Debug.WriteLine`应该用于你在发布版本中不想要的消息. (4认同)

Pau*_*aul 6

Debug.Writeline未编译为发布代码.