-1

Veuillez prendre en compte le scénario suivant: J'ai un fichier C++ et nous appelons ce code C++ du C#. Dans le dossier C, il y a un drapeauComment puis-je utiliser différents fichiers C++ dans le code de test et de production?

#define HasFeature 

Je voudrais ce drapeau comme indéfini dans le code de production, et que mon code de test je veux les activer. Après la finalisation du test, je veux qu'il soit à nouveau indéfini.

Je sais qu'il s'agit d'une fonctionnalité de compilation et que son édition en cours d'exécution ne sera pas possible. Je ne peux pas convertir le #define en quelque chose comme un membre de classe pour une autre raison. Une chose que je peux penser à ajouter deux fichiers, dans l'un d'eux le drapeau est défini et l'un d'entre eux l'indicateur est indéfini et dans test.proj utiliser le fichier avec l'indicateur défini et production.proj utiliser le fichier avec drapeau indéfini. Est-ce possible dans Visual Studio? Si oui, comment puis-je le faire? (Peut-être en utilisant une fonctionnalité dans csproj etc?)

Merci d'avance.

+0

Si une macro est la seule option (elle ne l'est pas), vous devez créer plusieurs versions du projet. Ajoutez une nouvelle configuration au-delà des configurations Debug et Release intégrées, comme "ReleaseProduction". Déploiement de la bonne saveur du fichier exécutable est à vous. –

+0

Quelles sont les autres options à la macro? –

Répondre

0

Vous pouvez définir votre drapeau avec un paramètre de ligne de commande dans la construction:

/p:DefineConstants="HasFeature" 

De cette façon, il vous suffit de définir ce que lors de la construction de test et de supprimer ce paramètre lors de la construction de la production définition.