Est-il possible de #define Constant sur une base de solution?

Y a-t-il un moyen de #define Constant à l’ #define Constant d’une solution Visual Studio?

On peut définir une constante sur une base de csproject, et on peut mettre une #define constant dans un fichier cs, mais je me demande si on peut la définir sur une base vs sln?

Vous pouvez réellement utiliser une variante de l’approche de Ritch avec des parameters de projet communs. Dans la solution, vous devez essentiellement apporter une modification à la fin de chaque fichier de projet:

   ..\..\    

Ensuite, vous pouvez définir CommonSettings.targets pour qu’il contienne les parameters généraux de la solution.

    true   

C’est essentiellement le cas, sauf si vous souhaitez remplacer ou fusionner les parameters de projet déjà définis dans chaque projet. Le lien ci-dessous explique comment procéder en détail.

http://www.ademiller.com/blogs/tech/2007/12/common-project-settings-for-your-visual-studio-solution/

J’ai une autre approche pour faire ceci:

  1. Editer le fichier de configuration global. Par exemple, dans mon cas, il s’agit de .netcf2.0 et donc $(MSBuildBinPath)\microsoft.compactframework.csharp.targets .

    Ajoutez la ligne suivante:

      

    Cela indique à MSBuild d’importer le fichier CommonSettings.targets s’il existe dans votre dossier de solution.

  2. Créez CommonSettings.targets dans le dossier de votre solution.

    Par exemple pour définir le symbole ABC:

       $(DefineConstants);ABC   

Indirectement il y a. Si vous définissez une variable d’environnement avec un indicateur et exécutez VS:

 set TacoBuild=true devenv.eve bigproject.sln 

ou lancez MSBuild à partir de la ligne de commande:

 msbuild /p:TacoBuild=true 

Dans vos fichiers .csproj, vous devez append un PropertyGroup:

  $(DefineConstants);TacoBuild  

Dans votre code, vous avez besoin d’un pré-processeur def:

 #if TacoBuild const int myConst = 42; #endif 

Une alternative consiste uniquement à définir une définition de préprocesseur dans les parameters de construction pour une nouvelle configuration de projet et à utiliser cette configuration dans votre construction.

Une solution non MSBuild consiste à créer un fichier constants.cs et à écrire un outil de configuration personnalisé qui met à jour le fichier cs. Je souhaite qu’il y ait une meilleure solution, mais je n’en ai pas trouvé.