在发布模式下记录程序集的 Debug.WriteLine 未写入 Visual Studio 中的调试输出

Ron*_*rby 5 .net debugging logging visual-studio

我的日志库有一个简单的DebugLogger,如下所示:

public class DebugLogger : Logger
{
    protected override void PerformLogging(string entry)
    {
        Debug.WriteLine(entry);
    }
}
Run Code Online (Sandbox Code Playgroud)

日志库已在RELEASE模式下构建。

正在开发引用日志记录库的应用程序DEBUG模式中开发。

问题是,当使用日志库的应用程序调用时,DebugLogger.PerformLogging("some debug message")Visual Studio 调试输出中不会显示任何内容。

我已经验证当日志记录程序集以模式构建时,事情确实按预期工作DEBUG。

我原以为处于DEBUG模式的入口程序集会优先,但看起来情况并非如此。

有什么可以做的吗?

编辑

http://msdn.microsoft.com/en-us/library/6x31ezs1.aspx在备注部分讨论了编译器忽略未定义的 Debug 方法DEBUG。

Jar*_*Par 3

如何Debug.WriteLine处理调用是在编译包含调用的项目时确定的。Debug.WriteLine在这种情况下,C# 编译器会看到对 Release 项目(DEBUG未定义)的调用,因此不会将调用发出到生成的 IL 中。此时,该PerformLogging方法没有引用Debug.WriteLine,因此任何类型的构建中的调用都不会执行调用Debug.WriteLine。