是否可以将代码标记为仅在调试模式下编译?

时间:2011-10-11 05:13:23

标签: c# .net visual-studio debugging f#

我在整个代码中都有一个try catch(或者在F#中)结构,但我并不真的需要它们在调试模式下,我更容易通过VS调试器调试错误。

所以我想标记try catch代码行只能在发布模式下编译 - 是否有可能?

5 个答案:

答案 0 :(得分:8)

你可以用:

包围它们
#if !DEBUG
...
#endif

答案 1 :(得分:4)

您正在寻找的是预处理器命令,如下所示:

#if !DEBUG
try {
#endif
code();
#if !DEBUG
}
catch(Exception)
{ dostuff(); }
#endif

MSDN文章:http://msdn.microsoft.com/en-us/library/4y6tbswk.aspx

答案 2 :(得分:3)

!不是F#中的预处理程序指令,因此您需要执行以下操作:

#if DEBUG
#else
try
#endif

...

#if DEBUG
#else
with e -> ...
#endif

答案 3 :(得分:3)

没有人提及可以应用于代码块的ConditionalAttribute。对于错误条件,代码块(及其所有调用)将从编译步骤中跳过。

参考:https://msdn.microsoft.com/en-us/library/system.diagnostics.conditionalattribute(v=vs.110).aspx

答案 4 :(得分:2)

您可以使用#if预处理器命令

#if !DEBUG
try {
#endif
// your "exceptional" code
#if !DEBUG
} catch { }
#endif