Pour ce que cela vaut, voici comment je gère le problème de changer une configuration et d'oublier de changer l'autre. Ce processus que j'utilise comporte toutefois deux mises en garde : 1) il fonctionne avec VS2010 et les versions supérieures ; et 2) j'ai appris à éviter complètement ce problème.
Tout d'abord, je JAMAIS apporter des modifications à la page de propriétés du projet lui-même ! Ils ont tendance à utiliser des conditions de construction qui causent ce problème en premier lieu. Au lieu de cela, j'ai toujours mon "Property Manager" ouvert à côté de mon "Solution Explorer".
Deuxièmement, j'ai plusieurs feuilles de propriétés "prédéfinies" dans un sous-dossier appelé common.properties que j'inclus, par exemple :
-
my_macros.props - définitions de macros communes spécifiques à la structure des répertoires de ma solution (lire : framework). Par exemple, j'ai une définition appelée MY_COMMON_OUTPUT_DIRECTORY qui est égale à $(SolutionDir)bin\$(Configuration)\$(ProjectName).
-
my_dox_settings.props - Paramètres spécifiques aux projets doxygen. Oui, je crée un projet séparé utilisant doxygen pour créer ma documentation.
-
my_test_settings.props - Paramètres spécifiques à mon cadre de test unitaire. Encore une fois, un projet séparé pour les tests unitaires. Ajoute un événement post-construction qui exécute l'exécutable compilé.
-
my_app_settings.props - Paramètres par défaut pour le cadre de mon application. Par exemple, il définit le "répertoire de sortie" comme étant MY_COMMON_OUTPUT_DIRECTORY.
-
my_app_settings_use_pch.props - Changements supplémentaires au cadre de mon application qui utilise des en-têtes précompilés. Il ajoute simplement un commutateur de compilation /DI_WANT_MY_PCH.
-
include_boost_files.props - Paramètres pour ajouter les bibliothèques boost à mes projets.
-
include_ogre_files.props - Paramètres pour ajouter les bibliothèques ogre à mes projets.
-
include_sdl_file.props - Paramètre pour ajouter les bibliothèques sdl à mes projets.
-
Vous devriez comprendre...
Ensuite, je crée une NOUVELLE feuille de propriétés vierge et je l'ajoute également. Je l'appelle généralement $(ProjectName).props [NOTE : assurez-vous de développer la macro vous-même] et je l'ajoute via le gestionnaire de propriétés en tant que tout dernier élément.
Désormais, lorsque j'ai besoin d'apporter une modification au projet, il me suffit de passer au gestionnaire de propriétés et de modifier la feuille de propriétés appropriée. Gardez à l'esprit que cela affecte tous les projets qui utilisent cette feuille de propriétés. Si vous ne voulez affecter que votre projet actuel, modifiez la feuille de propriétés $(ProjectName). À moins que vous ne prévoyiez des conditions (que je n'aborderai pas), un changement affecte de nombreuses configurations (et projets).
Je vérifie même mon répertoire common.properties dans le contrôle de la source.
J'espère que cela vous aidera,