Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

#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 
like image 877
Johnie Karr Avatar asked Dec 21 '12 13:12

Johnie Karr


2 Answers

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 
like image 126
Joe White Avatar answered Sep 27 '22 21:09

Joe White


Right click on the Project [Project name] name you want to use the custom precompiler directive.

Go to the properties item and then to the build tab.

then you need to add your custom directive there in the textbox. E.g i have added 'Local' as my custom directive see image below

enter image description here

Now you can can use the new compiler directive as shown below in your (in C#)

  #if **Local**     //TODO:Add your c# code here   #endif 
like image 21
Ram Avatar answered Sep 27 '22 21:09

Ram