C# Debugger.IsAttached 调试启动浏览器 VS if DEBUG 启动调试内容


1. 程序集

Debugger:调试类

引用集:System.Diagnostics.Debug.dll

2. 方法使用

1.调用系统默认的浏览器方法:

//调用系统默认的浏览器 
System.Diagnostics.Process.Start("http://blog.csdn.net/testcs_dn");

2. Debugger.IsAttached 调试启动浏览器

if (Debugger.IsAttached)
  {
      System.Diagnostics.Process.Start($"{baseAddress}/swagger");  //调试启动浏览器
   } 

3.if DEBUG  启动调试内容

#if DEBUG
       string baseAddress = "http://localhost:9000/";
#endif

3. 项目使用实例

4. #if DEBUG VS System.Diagnostics.Debugger.IsAttached

在Visual Studio中使用#if DEBUG System.Diagnostics.Debugger.IsAttached在Visual Studio中有什么区别?是否存在DEBUG设置了标志但没有附加调试器的情况,或者在DEBUG未设置标志的情况下可以附加调试器的情况?

#if DEBUG:

① 是编译时检查,这意味着它所包含的代码仅在DEBUG定义了预处理器符号的情况下才会包含在输出程序集中;

② 确保在发布版本中根本不将代码包含在程序集中。此外,所包含的代码#if DEBUG始终在调试版本中运行-不仅仅是在调试器下运行时。

Debugger.IsAttached:

①是运行时检查,因此调试代码仍包含在程序集中,但仅在将调试器附加到进程时才执行;

② 表示无论调试还是发布版本都包含代码。并且可以将调试器附加到发行版。

 5. 参考资料

① C#调用默认浏览器打开网页的几种方法:https://blog.csdn.net/testcs_dn/article/details/42246969

② #if(DEBUG)VS System.Diagnostics.Debugger.IsAttached:https://stackoverflow.com/questions/7073266/if-debug-vs-system-diagnostics-debugger-isattached