C# Conditional Compilation and framework targets

Posted by McKAMEY on Stack Overflow See other posts from Stack Overflow or by McKAMEY
Published on 2010-05-27T17:05:43Z Indexed on 2010/05/27 17:11 UTC
Read the original article Hit count: 895

Filed under:
|
|
|
|

There are a few minor places where code for my project may be able to be drastically improved if the target framework were a newer version. I'd like to be able to better leverage conditional compilation in C# to switch these as needed.

Something like:

#if NET_40
using FooXX = Foo40;
#elif NET_35
using FooXX = Foo35;
#else
using FooXX = Foo20;
#endif

Do these symbols come for free? Do I need to inject these symbols as part of the project configuration? Seems easy enough to do since I'll know which framework is being targeted from msbuild.

I think I've seen that NET_40 symbol isn't defined? If so I think I could do this?

#if !NET_35 && !NET_20
#define NET_40
#endif

Or do I need to define it in the msbuild command:

/p:DefineConstants="NET_40"

© Stack Overflow or respective owner

Related posts about c#

Related posts about best-practices