Dans tous les exemples que j'ai vus de la directive du compilateur #if, ils utilisent "DEBUG". Puis-je utiliser "RELEASE" de la même manière pour exclure le code que je ne veux pas exécuter lorsqu'il est compilé en mode débogage? Le code que je veux entourer avec ce bloc envoie un tas d'e-mails, et je ne veux pas les envoyer accidentellement lors des tests.
277
#if !DEBUG
sert la même fonction que l'#if RELEASE
aurait fait. Sinon,#if DEBUG
alors#else
alors#endif
s'il y a un code différent pour exécuter dans les modes.Réponses:
Non, sauf si vous travaillez.
La partie importante ici est ce qu'est réellement DEBUG, et c'est une sorte de constante définie que le compilateur peut vérifier.
Si vous vérifiez les propriétés du projet, sous l'onglet Générer, vous trouverez trois choses:
Il n'y a pas de case à cocher, ni de constante / symbole prédéfini qui porte le nom RELEASE.
Cependant, vous pouvez facilement ajouter ce nom à la zone de texte intitulée Symboles de compilation conditionnelle, mais assurez-vous de définir la configuration du projet en mode Release avant de le faire, car ces paramètres sont par configuration.
Donc, fondamentalement, à moins que vous n'ajoutiez cela à la zone de texte,
#if RELEASE
ne produira aucun code sous aucune configuration.la source
RELEASE
n'est pas défini, mais vous pouvez utiliserla source
RELEASE
était définie.Nan.
En configuration de débogage, il existe une
DEBUG
constante définie (définie automatiquement par Visual Studio) alors qu'aucune telle constante n'est définie pour le mode de publication. Vérifiez les paramètres de votre projet en cours de construction.Sélectionner [Define DEBUG constant] sous Project -> Build revient à inclure #define DEBUG au début de chaque fichier.
Si vous souhaitez définir une constante RELEASE pour la configuration de la version, accédez à:
la source
#if (RELEASE) [RequireHttps] #endif
Sur mon installation VS (VS 2008)
#if RELEASE
ne fonctionne pas. Cependant, vous pouvez simplement utiliser#if !DEBUG
Exemple:
la source
Je n'avais jamais vu ça auparavant ... mais j'ai vu:
et
Ça marche pour toi?
la source
!
opérateur fonctionnera, comme dans votre deuxième exemple.Vous pouvez utiliser
#if(!DEBUG)
à cette fin.la source
"Pop Catalin" a raison. Le contrôle de la définition en fonction du type de build offre une grande flexibilité. Par exemple, vous pouvez avoir une configuration "DEBUG", "DEMO" et "RELEASE" dans la même solution. Cela évite d'avoir à dupliquer la programmation avec deux solutions différentes.
Donc, oui
#if RELEASE
ou#if (RELEASE)
fonctionne de la même manière que#if DEBUG
lorsque le symbole de compilation conditionnelle RELEASE est défini.Ce qui suit est tiré de la publication "Pop Catalin": Si vous souhaitez définir une constante RELEASE pour la configuration de la version, allez dans: * Propriétés du projet -> Build * Sélectionnez le mode Release * dans la zone de texte Symboles de compilation conditionnelle, entrez: RELEASE
la source
Je sais que c'est une vieille question, mais il convient de mentionner que vous pouvez créer vos propres configurations en dehors de DEBUG et RELEASE, telles que TEST ou UAT.
Si ensuite sur l'onglet Build de la page des propriétés du projet, vous définissez les "symboles de compilation conditionnelle" sur TEST (par exemple), vous pouvez alors utiliser une construction telle que
Vous pouvez utiliser cette construction pour des raisons spécifiques telles que différents clients si vous en avez besoin, ou même des méthodes Web entières par exemple. Nous l'avons également utilisé dans le passé lorsque certaines commandes ont causé des problèmes sur du matériel spécifique, nous avons donc une configuration pour une application lorsqu'elle est déployée sur le matériel X.
la source
Vous pouvez créer vos propres symboles de compilation conditionnels (n'importe quel nom que vous aimez). Allez dans la "boîte de dialogue de construction du projet", située dans la boîte de propriétés du projet, option de menu: Projet -> [nom du projet] Propriétés ...
Vous pouvez également les définir "en haut du fichier de code C #". Comme:
vous pouvez utiliser le symbole dans une instruction #if:
la source
pourquoi pas
la source
/d:RELEASE
fonctionnerait également. Vous pouvez également l'ajouter aux symboles de compilation conditionnelle sous Configuration de la version (onglet de création des propriétés du projet).