To use MS Fakes shims, I had to conditionally exclude related tests to allow easily bypass them on Community and Professional Editions of the Visual Studio.
#if !FAKES_NOT_SUPPORTED
[ TestMethod()]
Fakes related code
#endif
I tried to find does edition automatically pre-defined by compiler, but it’s not included in Conditional Compilation Constants
Furthermore, these constants seems defined in VB only, and not in c# and not updated since VS2008.
The reasons are discussed in “Pre-defined Constants, preprocessor directives, etc… “
The “C# Language Designers” decided to not include constants in the fashion in which C/C++ allows them. To allow some, or even one, would open a Pandora’s Box of voices suggesting new constants to be added.
But I disagree, because if the limitation coming from VS , it should provide a way to determine it in pre-condition.
It can be done in C++ detecting-compiler-versions-during-compile-time
The related article shows how to check installed Visual Studio on run-time
Unfortunately I didn’t find, is it possible to determine Visual Studio edition during c# compile time?