2010-01-03 7 views
19

J'ai plusieurs classes dans un projet qui doivent seulement être dans certaines versions de l'application qui ne sont pas encore prêtes pour la publication ou le débogage.Comment définir le #define au niveau du projet en C#

Pour éviter ces classes d'être utilisés, je veux mettre autour d'eux ceci:

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

Malheureusement, je ne sais pas comment configurer un projet large #define.

Existe-t-il une fonctionnalité dans Visual Studio pour définir des définitions à l'échelle du projet?

Si oui, bien que je n'en aie pas besoin pour l'instant, existe-t-il une fonctionnalité permettant de définir des définitions à l'échelle de la solution?

S'il n'y a aucune fonctionnalité pour cela (vu que C# n'a pas de fichiers inclus, je suppose que c'est possible), existe-t-il une méthode ou un plugin pour faire cette fonctionnalité sans utiliser le compilateur?

Répondre

31

Vous pouvez le faire dans les propriétés du projet, mais pas dans le code source.

Propriétés du projet => Build => symboles de compilation conditionnelle

Vous pouvez spécifier selon les symboles dont vous avez besoin (espace délimité, mais IIRC est est tout à fait pardonner). Notez que DEBUG et TRACE peuvent également être basculés avec une case à cocher.

J'ai des projets multiples "release" construire des configurations, avec des symboles différents dans chaque (pour la construction 2.0 vs 3.0 vs 3.5 versions - voir <DefineConstants>here)

+1

Situé juste en face de mon visage! Je n'ai jamais su que c'était pour ça, ou comment l'utiliser, merci! –

+0

Merci! C'était juste en face de mon visage aussi! – Xonatron

+0

"Vous pouvez le faire dans les propriétés du projet, mais pas dans le code source." C'est en fait une limitation assez désagréable. Être capable de le faire dans le code est important pour des raisons de commodité et de visibilité. –

Questions connexes