Search code examples
c#.netpreprocessor-directive

#if preprocessor directive for directives other than DEBUG


I know that I can use preprocessor directives to check for Debug/Release by doing this:

#if DEBUG
    //debug mode
#elif
    //release mode
#endif

but what about checking for other configurations, like Test. In VB you can do this:

#If CONFIG = "Release" Then
    'Release mode
#ElseIf CONFIG = "Test" Then
    'Test mode
#ElseIf CONFIG = "Debug" Then
    'Debug mode
#End If

So, my question is in C#, how can I check for Test mode? I have some code that I want to execute if I'm in Debug AND Test, but not in Release mode, so specifically, I need a way to check for not being in Release mode. In VB I would do this:

#If Not CONFIG = "Release" Then
    'Do something here for every configuration that is not Release
#End If

Solution

  • It's the same as for DEBUG, assuming that you've defined a build configuration that lists TEST in the "Conditional compilation symbols" text box (under project properties > Build tab; this is a space-delimited list).

    For code that you only want to run in the TEST build configuration:

    #if TEST
    // ...
    #endif
    

    And for code you don't want to run in the TEST build configuration, you can either #else the above, or do this:

    #if !TEST
    // ...
    #endif