C# - 是否真的需要在.net中进行调试构建

Adi*_*rda 4 .net c# debug-build

如果发布版本生成.pdb文件,你可以进入每一行,放置断点等,那么为什么还要费心去构建我的组件的"调试"版本?

我正在为我的项目使用c#,我没有调试发布版本的问题.在C++中我调试优化代码时遇到问题,但在C#中它运行正常.我不是在谈论愚蠢的代码块if(false)......

Grz*_*nio 8

发布版本更加优化,例如,当我调试发布版本时,当我们的值不会被运行时使用时,局部变量的值会消失.


Jar*_*Par 7

一个原因是附加与发布.

如果在.Net中启动零售流程,则调试几乎与启动调试流程一样好.您可能不会注意到调试体验有任何差异.

Attach是一个完全不同的球赛.C#和VB都通过/ optimize +标志进行零售构建.这将在程序集级别嵌入DebuggableAttribute而不使用DebuggingMode.DisableOptimizations标志.在进程启动期间,VS/CLR将进行通信以基本上忽略此事实并禁用影响调试的JIT优化.在附加过程中,没有这样的项目发生,JIT/CLR将优化它的心脏内容.我保证,在这种情况下,调试经验会更糟.

你可以在VS中试验这个

  • 将构建切换到Release
  • CTRL + F5无需调试即可启动
  • 附加到流程.


Jul*_*Wit 5

在(c#)winforms中,您无法在发布版本中编辑和继续.