#Define à l’échelle de la solution

Est-il possible de déclarer globalement un #define?

Comme je veux avoir un fichier qui a par exemple,

#define MONO 

et je veux que tous les fichiers de code source sachent que cette directive de préprocesseur est définie. Comment pourrais-je y arriver?

Mise à jour: Vous ne pouvez pas définir une définition à l’échelle de la solution, mais la réponse ci-dessous est réalisable pour chaque projet.

Vous les définissez dans vos options de compilation ou de génération:

http://msdn.microsoft.com/en-US/library/76zdzba1(v=VS.80).aspx (VS2008) http://msdn.microsoft.com/en-US/library/76zdzba1(v=VS .100) .aspx (VS2010)

voir l’en-tête “Pour définir une constante personnalisée”.

Mettre à jour

Documentation Microsoft sur les options de génération

Vous accédez aux options de construction en cliquant avec le bouton droit sur le projet et en sélectionnant les propriétés dans le menu.

Options de construction de projet

Je ne pense pas qu’il existe un moyen de créer un #define à l’ échelle de la solution . Vous pouvez en créer un pour chaque projet / assemblage, comme les autres réponses l’ont décrit, mais vous devrez le faire pour chaque projet de la solution si vous avez besoin de tous les fichiers de code source pour connaître ce #define.

Ici, il y a une réponse qui répond à l’exigence: “#define Constant on Solution Basis”

Y a-t-il de toute façon #define Constant sur une base de solution?

Créez une nouvelle configuration de solution dans Configuration Manager et assurez-vous que la case est cochée pour créer également de nouvelles configurations de projet. Et ensuite, dans les propriétés de construction de chaque projet, entrez MONO dans la zone Symboles de compilation conditionnelle .

en vs 2013, vous pouvez utiliser / définir: x ou / d: x http://msdn.microsoft.com/en-us/library/0feaad6z.aspx

Je connais la solution pour les projets C # (je ne l’ai pas testé pour d’autres projets)

Par exemple, vous avez:

 Project1\ Project2\ Solution1\Solution1.sln Solution2\Solution2.sln 

Créer un fichier SolutionDefines.targets dans le répertoire de la solution

 Project1\ Project2\ Solution1\Solution1.sln Solution1\SolutionDefines.targets Solution2\Solution2.sln Solution2\SolutionDefines.targets Solution3\Solution2.sln Solution3\|no target file| 

dans chaque fichier de projet, ajoutez:

  

Dans Solution1\SolutionDefines.targets ajoutez:

   $(DefineConstants);TRACING_BUILD   

Dans Solution2\SolutionDefines.targets ajoutez:

   $(DefineConstants);ANOTHER_DEFINE   

Dans ce cas, vous avez:

Pour Solution1 – tous les projets ont défini TRACING_BUILD

Pour Solution2 – tous les projets ont défini ANOTHER_DEFINE define

Pour Solution3 – tous les projets – aucune définition ajoutée

Dans cette approche, vous devez stocker toutes les solutions avec des définitions étendues dans des répertoires distincts.

L’emplacement approprié pour une directive de préprocesseur est la configuration de génération VS. Si vous utilisez une ligne de commande pour créer votre solution, vous pouvez également la transmettre en utilisant l’option / define.