Entwickler-Ecke

Basistechnologien - Projektübergreifendes #define


ebber - Mi 07.11.12 14:49
Titel: Projektübergreifendes #define
Hallo,

ich habe folgendes in meinem Code:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
#define sth

#if sth
...
#else
...
#endif


Das funktioniert auch, allerdings soll das #define in meinem aktuellen Projekt stehen, aber in einem 2. darangehängten Projekt "wirken". Ist das möglich?

MfG


Ralf Jansen - Do 15.11.12 10:44

Nein. Präprocessordirektiven wirken beim kompilieren auf das Projekt in dem sie definiert sind. Stell dir vor alle Processordirektiven aus allen referenzierten Assemblies würden beim kompilieren auch auf dein Kompilat wirken. Vermutlich würden die sich sogar wiedersprechen. Wenn du einen speziellen define hast der in allen Projekten ziehen soll dann pack den in eine eigene cs Datei und referenziere diese Datei aus allen Projekten.


Th69 - Do 15.11.12 12:24

Hallo,

ein #define wirkt aber nur auf genau die Datei, in der sie definiert ist (für ein ganzes Projekt nur, wenn es in den Projekteinstellungen definiert ist), s. #define (C#-Referenz) [http://msdn.microsoft.com/de-de/library/yt3yck0x%28v=vs.100%29.aspx].


Ralf Jansen - Do 15.11.12 15:58

Ups. Immer diese hinderlichen Details :roll:


ebber - Do 15.11.12 18:40

Dann muss ich es wohl anders machen, danke.