可能重复

在VisualStudio中调试和发布有什么区别?

推荐答案

最重要的是,在调试模式下没有优化,而在发布模式下有优化.这一点很重要,因为编译器非常先进,可以对您的代码进行一些相当棘手的低级改进.因此,您的代码中的某些行可能会完全没有任何指令,或者可能会完全混淆.循序渐进的调试是不可能的.此外,局部变量通常以神秘的方式进行优化,因此手表和QuickWatch通常无法工作,因为变量被"优化"了.还有许多其他的优化.有空试着调试优化的.NET代码,您就会明白.

另一个关键区别是,由于这一点,默认版本设置不需要生成大量调试符号信息.这就是问题所在.您可能已经注意到了PDB文件,它允许调试器找出哪些汇编指令与哪一行代码对应,等等.

.net相关问答推荐

SeriLog LogConext.PushProperty在ASP.NET MVC 5中不能使用OWIN中间件

Dictionary.FirstOrDefault() 如何判断是否找到了结果

如何找到windows服务exe路径

什么是表达式树,如何使用它们,为什么要使用它们?

在 .NET 中获取执行 exe 路径的最佳方法是什么?

为什么 C# 不允许像 C++ 这样的非成员函数

在 .NET C# 中存储加密密钥的最佳方式

是什么让 Enum.HasFlag 这么慢?

如何使用c#从excel文件中读取数据

如何使用 log4net 记录跟踪消息?

返回 IList 是否比返回 T[] 或 List 更糟糕?

如何禁用 Alt + F4 关闭表单?

无法使用 Unity 将依赖项注入 ASP.NET Web API 控制器

Dispatcher.CurrentDispatcher 与 Application.Current.Dispatcher

强制 XmlSerializer 将 DateTime 序列化为 'YYYY-MM-DD hh:mm:ss'

如何找到二维数组的大小?

确定使用 ContextMenuStrip 的控件

并发字典正确用法

如何访问 Session 变量并在 javascript 中设置它们?

我可以将构造函数参数传递给 Unity 的 Resolve() 方法吗?