C# 如何让Debug.WriteLine在发布模式下写入输出窗口?

C# 如何让Debug.WriteLine在发布模式下写入输出窗口?,c#,.net,debugging,enterprise-library,C#,.net,Debugging,Enterprise Library,好吧,我意识到这个问题听起来很可笑。为什么要在发布模式下调试?我正在尝试实现一个ILogger接口,当它被实现时,它会为日志记录提供一个门面(显然)。在大多数情况下,该facade会写入企业库——因此它已经有了一个带有自己配置的调试方法。问题是,我只是简单地将Debug.WriteLine(“msg”)行添加到facade中,除了写入文件的正常行为之外,当我在发布模式下构建它时,这些调试语句不会与它一起编译,因此当使用来自不同项目的库时,它不会写入控制台,即使该项目是在Debug中构建的 我想要

好吧,我意识到这个问题听起来很可笑。为什么要在发布模式下调试?我正在尝试实现一个ILogger接口,当它被实现时,它会为日志记录提供一个门面(显然)。在大多数情况下,该facade会写入企业库——因此它已经有了一个带有自己配置的调试方法。问题是,我只是简单地将Debug.WriteLine(“msg”)行添加到facade中,除了写入文件的正常行为之外,当我在发布模式下构建它时,这些调试语句不会与它一起编译,因此当使用来自不同项目的库时,它不会写入控制台,即使该项目是在Debug中构建的

我想要的是设置这个外观,这样无论它是如何构建的,所有Logger.Debug消息都将输出到窗口,而不仅仅是MEL生成的文件。我是否可以将System.Diagnostics对象设置为始终编译,或者是否有方法将企业库设置为将输出用作已配置的侦听器?

您可以改为使用。只需确保发布设置中定义了
TRACE
(默认情况下)

从技术上讲,您可以通过项目设置或显式地在发布模式中定义
DEBUG

#define DEBUG
但这会很奇怪