为什么我要使用.NET编译器的调试模式?

问题描述 投票:0回答:4

我很好奇 .NET 编译器的调试和发布模式之间有什么区别,并遇到了有关 .NET 中的调试与发布以及发布与调试行为不同的原因的问题。 到目前为止,我还没有真正关注这些编译器模式。 现在我会的。

我的问题是,假设我使用测试框架(NUnit)和 TDD,如果我总是在发布模式下编译,我会遇到任何问题吗?

c# debugging nunit release
4个回答
5
投票

您正在使用 TDD。 你写你的测试。 测试失败。 您编写代码以通过测试。 代码失败。 您查看自己编写的代码,看不到任何明显的失败原因。 您是否会进行更多推理或在调试器中启动测试(使用 TestDriven.Net)并逐步完成测试? 也许我只是不够聪明,无法总是弄清楚为什么我的代码不起作用,但当我遇到困难时,我通常会选择后者。


2
投票

调试模式关闭了很多优化。这意味着当您获得堆栈跟踪时,它将看起来更像原始代码。


1
投票

调试和发布配置之间的一个非常显着的区别是,只有定义了关联符号时,才会编译对标有

ConditionalAttribute
的方法的调用。 因此,如果您使用发布配置进行编译,则不会包含对
Debug
类的方法的调用。

这使您可以使用断言和将信息转储到控制台的代码来装饰您的代码,并且确信这些开销不会出现在您的运输代码中。

此外,编辑并继续是一个非常有用的工具,它依赖于发布版本中省略的元信息。


0
投票

用于调试。

就像 tvanfosson 所说,即使你通常不使用调试器(我知道我不使用),有时你也需要。

© www.soinside.com 2019 - 2024. All rights reserved.