Hierzu stehe ich im Moment vor einem Problem oder besser: vor einer Ungewissheit.
Ich habe im VS2005 eine Projektmappe mit mehreren Projekten. In den einzelnen Projekten brauche ich an gewissen Stellen sowas:
#if DEBUG
... mach irgendwas ...
#endif
Jetzt habe ich mir gedacht, dass ich in einer statischen Basisklasse ("ganz unten") eine Methode definiere:
public static bool IsDebugEnvironment()
{
bool isDebug = false;
#if DEBUG
isDebug = true;
#endif
return isDebug;
}
und diese Methode in allen darauf aufbauenden Projekten verwende, anstatt dort jedesmal "#if DEBUG" abzufragen.
Nun habe ich das getestet und es scheint auch so, dass das richtig funktionert. Ich habe sogar ein Release-Build der Basisklasse als Verweis eingebunden und denn in der Debug-Konfiguration das Programm gestartet. Ergebnis: Die Konfiguration des Programms ("Debug") schlägt anscheinend bis in die von ihm eingebundenen Assemblies (Release-Builds) durch.
Ich bin mir aber nicht schlüssig, ob dies wirklich ein kugelsicherer Weg ist.