Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set project wide #define in C#

I have several classes in a project which need to only be in certain builds of the application which are currently not ready for release or debug.

To prevent these classes from being used, I want to set around them this:

#if USE_MYCLASS
// Code here...
#endif

Unfortunately, I don't know how to setup a project-wide #define.

Is there functionality in Visual Studio to set project-wide definitions?

If there is, though I don't need it right now, is there a functionality to set solution-wide definitions?

If there is no functionality for such (seeing as C# does not have include files, I suppose it's possible), is there any method or plugin of doing this functionality without using the command line compiler and /D?

like image 991
Brett Allen Avatar asked Jan 03 '10 18:01

Brett Allen


1 Answers

You can do that in the project properties, but not in source code.

Project Properties => Build => Conditional compilation symbols

You can specify whichever symbols you need (space delimited, but IIRC is is quite forgiving). Note that DEBUG and TRACE can also be toggled with a checkbox.

I have some projects with multiple "release" build configurations, with different symbols in each (for building 2.0 vs 3.0 vs 3.5 versions - see <DefineConstants> here)

like image 71
Marc Gravell Avatar answered Nov 01 '22 14:11

Marc Gravell