Comment supprimer une configuration de projet dans Visual Studio 2008?

98

J'ai une solution Visual Studio 2008 dans laquelle j'ai importé un certain nombre de projets préexistants. Les projets sont des exemples de code en langage mixte (C #, VB, C ++ / CLI). Ils ont actuellement plusieurs configurations, mais je veux que chaque projet n'ait qu'une seule configuration "Debug".

Dans le gestionnaire de configuration, j'ai supprimé les autres configurations (par exemple "Release"), mais comme je l'ai fait, il y avait un message d'avertissement pour me dire qu'elles ne seraient pas supprimées des projets individuels.

Et en effet, lorsque je navigue vers un projet individuel, il a toujours "Release" et d'autres configurations, même si au niveau de la solution il n'y a que "Debug".

Comment puis-je supprimer au mieux ces configurations supplémentaires de chaque projet? Suis-je en train d'ignorer un moyen de le faire dans l'interface graphique ou devrais-je simplement modifier directement les fichiers du projet?

Eric
la source

Réponses:

191

Dans le Gestionnaire de configuration, sélectionnez "Modifier ..." dans la colonne "Configuration" pour chaque projet (pas via la liste déroulante nommée Configuration de la solution active) qui a des configurations que vous souhaitez supprimer.

Dans la boîte de dialogue qui apparaît, marquez chaque configuration indésirable et sélectionnez «Supprimer».

Timbo
la source
22
Je vous remercie! Je souhaite que Visual Studio offre un moyen plus rapide de supprimer une configuration dans tous les projets. Si vous avez une douzaine de projets dans une solution, il est difficile de parcourir chacun d'eux et de supprimer manuellement la configuration.
Stefano Ricciardi
1
@Matthias, je ne suis pas d'accord. Et non, cela n'a pas été changé (depuis quand j'ai répondu à cela en 2009 jusqu'à la version 2013).
Timbo du
1
Si je vais dans le Gestionnaire de configuration, supprime une configuration de solution active via la modification, la configuration est effectivement supprimée du Gestionnaire de configuration. Mais si vous accédez maintenant aux propriétés de votre projet, la configuration est toujours là. Si vous regardez à l'intérieur des fichiers .vcxproj, la configuration est toujours là. J'utilise Visual Studio 2013 (Professional et Ultimate)
Matthias
1
@Matthias Lisez attentivement (en particulier la partie de chaque projet ). Peut-être que le choix / ordre des mots dans ma réponse n'est pas correctement optimisé pour une meilleure compréhension, mais cela ne change pas que cela fonctionne ou non.
Timbo
1
@Stefano Ricciardi 5 ans plus tard, avez-vous trouvé une solution à une telle douleur?
cppBeginner
10

Pour illustrer la réponse de Timbo, voici de quoi il parle. Comme certains des commentateurs, il m'a fallu un certain temps pour trouver ceci.

entrez la description de l'image ici

Tom Winter
la source
9

La meilleure façon d'automatiser la suppression d'une configuration de tous les projets d'une solution est d'utiliser la commande de console Nuget pour accéder aux apis de Visual Studio.

Accédez à Outils , Nuget Package Manager , Package Manager Console .

À partir de là, utilisez:

Get-Project -All | Foreach { $_.ConfigurationManager.DeleteConfigurationRow("Release") }

De cette façon, vous avez supprimé toutes les configurations de tous les projets appelés "Release". Je vous suggère fortement de toujours vérifier les différences sur votre système de gestion des versions du code source, vous ne verrez que csprojet dans certains cas les slnfichiers affectés, si vous utilisez des transformations de configuration (comme Web.Release.config), ils seront toujours là.

De plus amples informations sont disponibles sur la documentation de l'API spécifique à la version de Visual Studio ici , cela fonctionne à partir d'au moins VS 2015 pour les langages C ++, C #, F #, VB.

Giulio Caccin
la source
Pouvez-vous fournir des références, par exemple comment vous avez créé ce code? Existe-t-il un tutoriel? Je veux m'assurer que cela ne brisera pas mon projet, je pourrai le maintenir moi-même et probablement l'utiliser pour d'autres choses.
javaLover
Remercier! J'ai remarqué que l'arborescence du sujet (en haut de la page) dans votre lien est Docs > .NET > ... > DeleteConfigurationRow. Cela fonctionne-t-il uniquement pour la solution .net? L'avez-vous également testé pour une solution C ++?
javaLover
N'a pas fonctionné dans VS2019 sur ma solution C ++: l'erreur HRESULT E_FAIL a été renvoyée d'un appel à un composant COM. À la ligne: 1 car: 30 + ... | Foreach {$ _. ConfigurationManager.DeleteConfigurationRow ("DLL-Impor ... + CategoryInfo: OperationStopped: (:) [], COMException + FullyQualifiedErrorId: System.Runtime.InteropServices.COMException Error HRESULT E_FAIL a été renvoyé d'un appel à un COM component. A la ligne: 1 char: 30 + ... | Foreach {$ _. ConfigurationManager.DeleteConfigurationRow ("DLL-Impor ...
Terry
A bien fonctionné pour moi, solution de projets C ++. Merci pour le conseil!
Nordic Mainframe le
3

Ne répond pas à cette question particulière que je connais, mais avec VS2013, vous pouvez ouvrir l'onglet Property Manager, développer toutes les configurations de projet, faire une sélection multiple à l'aide des touches CTRL ou SHIFT et supprimer des configurations de plusieurs projets à la fois.

Écossais
la source
Est-ce uniquement pour les projets C ++? Je suppose que l'onglet auquel vous faites référence est «Affichage> Autres fenêtres> Gestionnaire de propriétés»?
Steven Anderson
1

Dans VS2017 / VS2019, si vous déroulez la "Configuration de la solution active", il y a un <edit> là-bas qui vous permet de supprimer une configuration de tous les projets.

Capture d'écran montrant <edit>

PolicyWatcher
la source