VS 解决方案的配置Debug和Release有什么区别?

VS 解决方案的配置Debug和Release有什么区别?


Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。在bin\debug\目录中有两个文件,除了要生成的.exe或.dll文件外,还有.pdb文件,.pdb文件中就记录了代码中的断点等调试信息;
Release 称为发布版本,Release模式下不包含调试信息,并对代码进行了优化
,使得程序在代码大小和运行速度 上都是最优的 ,\bin\release\目录下只有一个.exe或.dll文件。在项目文件夹下除了bin外,还有个obj目录。编译是分模块编译的,每个模块的编译结果就保存在了obj目录下。最后会合并为一个exe或者dll文件保存到\bin\release\目录中。因为每次编译都是增量编译,也就是只重新编译改变了的模块,所以这个obj的目录的作用就是保存这些小块的编译结果,加快编译速度。

在命名空间System.Diagnostics中有Debug类,和Release类,来实现上面的两种版本
如果是发布版本,则调试版本中调用Debug类的方法均失效。 
Debug类和Release都有以下相同的方法
//
        // 摘要:
        //     将消息写入 System.Diagnostics.Trace.Listeners 集合中的跟踪侦听器。
        //
        // 参数:
        //   message:
        //     要写入的消息。
        [Conditional("TRACE")]
        public static void Write(string message);--消息会出现在调试输出中
        

    
        // 摘要:
        //     如果条件为 true,则将类别名称和对象的 System.Object.ToString() 方法值写入 System.Diagnostics.Trace.Listeners
        //     集合中的跟踪侦听器。()
        //
        // 参数:
        //   condition:
        //     若要使消息被写入,则为 true;否则为 false。
        //
        //   value:
        //     一个 System.Object,其名称被发送到 System.Diagnostics.Trace.Listeners。
        //
        //   category:
        //     用于组织输出的类别名称。
        [Conditional("TRACE")]
        public static void WriteIf(bool condition, object value, string category);--消息会出现在调试输出中
        


        // 摘要:
        //     检查条件,如果条件为 false,则输出调用堆栈。 
        //
        // 参数:
        //   condition:
        //     若要禁止显示消息,则为 true;否则为 false。
        [Conditional("TRACE")]
        public static void Assert(bool condition);  --(以窗体弹出的形式输出调用堆栈信息)
       

        //
        // 摘要:
        //     发出指定的错误信息。
        //
        // 参数:
        //   message:
        //     要发出的消息。
        [Conditional("TRACE")]
        public static void Fail(string message); --(以窗体弹出的形式,显示message)

        //
        // 摘要:
        //     使用指定的消息向 System.Diagnostics.Trace.Listeners 集合中的跟踪侦听器中写入错误信息。
        //
        // 参数:
        //   message:
        //     要写入的信息性消息。
        [Conditional("TRACE")]
        public static void TraceError(string message);--trace中的方法 message会出现在调试输出中,前面Error提示 见下图


        //
        // 摘要:
        //     使用指定的消息向 System.Diagnostics.Trace.Listeners 集合中的跟踪侦听器中写入警告消息。
        //
        // 参数:
        //   message:
        //     要写入的信息性消息。
        [Conditional("TRACE")]
        public static void TraceWarning(string message);--trace中的方法 message会出现在调试输出中,前面有Warning提示 见下图
 
        //
        // 摘要:
        //     使用指定的消息向 System.Diagnostics.Trace.Listeners 集合中的跟踪侦听器中写入警告消息。
        //
        // 参数:
        //   message:
        //     要写入的信息性消息。
        [Conditional("TRACE")]
        public static void TraceWarning(string message);--trace中的方法,message会出现在调试输出中,前面有Warning提示  见下图


也可以把调试信息进行输出文件如下


        private void test()
        {         

  TextWriterTraceListener tr1 = new TextWriterTraceListener(System.Console.Out);//输出到控制台 (权限控制台项目)
Debug.Listeners.Add(tr1);
TextWriterTraceListener tr2 = new TextWriterTraceListener(System.IO.File.CreateText("output.txt"));//输出到文件
Debug.Listeners.Add(tr2);
EventLogTraceListener tr3 = new EventLogTraceListener("myEventLogSource");//输出到系统日志, 需要有管理员权限
            Debug.Listeners.Add(tr3);          
             Debug.WriteLine("Test output");

             Debug.Close();//最后调用Close来关闭文件流。

      }

相关:

Trace、Debug和TraceSource的使用以及日志设计

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值