38 votes

Existe-t-il une alternative / un plugin pour le gestionnaire de configuration de Visual Studio?

J'ai le besoin de supprimer et de renommer une sélection de solution/les configurations de projet dans visual studio, il n'existe aucun outil qui vous aidera dans cette démarche?

Je suis la recherche de l'intégré dans l'outil de très peu serviable. Par exemple, quand je supprimer une configuration à partir d'une solution, il refusera de supprimer le projet lié à la configuration dans le cas où ils sont nécessaires ailleurs. Également renommer une configuration de la solution ne sera pas renommer c'est lié configurations.

Il doit y avoir une meilleure façon de le faire. Toute autre alternative d'outils?

18voto

charley Points 3329

J'ai le besoin de supprimer et de renommer un sélection de solution/projet les configurations dans visual studio, sont il y a un outil qui va aider à cette?

Réponse courte: Non.

Réponse longue: Sorte-de (par exemple, vous allez intégrer "l'aide" des outils qui sont incomplètes, et d'écrire des scripts personnalisés/travail pour créer/intégrer dans votre processus de gestion des configurations).

Commentaire éditorial: la Grande question, beaucoup de gens ont souffert de cette (comme indiqué par le "upvotes" à votre question), et nous avons tous l'amour une bonne réponse.

Je suis la recherche de la construction en outil très peu serviable. Par exemple, quand je supprime une configuration à partir d'une solution de refuse de supprimer la relative les configurations de projet, juste au cas où ils sont nécessaires ailleurs. Aussi renommage d'une solution de configuration renommez pas que c'est lié les configurations.

D'accord-l'outil intégré est tout à fait inutile. Il est très difficile de maintenir de nombreux projets et solutions avec des configurations différentes et des ensembles de dépendances, en particulier pour les différents types de cibles/plates-formes. Il a des caractéristiques comme son utilisation de plusieurs Guid pour les projets, les ensembles de fichiers, et les types de projets, qui sont stockées dans le registre, et accessible depuis l'intérieur de l' *.sln et *.vcproj. L'outil va tenter de "guérir" de ces identificateurs uniques de l'onu de faire vos modifications, et en ignorant certains de ses propres valeurs, de "réparer" les connexions entre les projets/solutions. Il en résulte beaucoup de "trucs" dans votre base de registre et dans vos fichiers de configuration, inutile de modifier les fichiers si vous vérifiez dans votre système de contrôle de version, et les scénarios où de nombreuses parties du fichier sera "ignoré", même si vous (bien) fait de ces modifications. Certaines données telles que "nom de projet" et "projet de nom de configuration" et "plate-forme du projet de nom de" sont parfois redondantes, et parfois pas. Parce que les Guid, ce type de "externes/manuel d'entretien" rend très facile pour votre projet/solution pour "paraître" pour faire référence au projet correct (par nom), mais le MAL de projet (comme identifié de manière unique par un GUID, qui a été résolu au moyen d'un renvoi dans le registre). Et, il n'y a plus qu'un moyen de spécifier la même chose à l'intérieur de ces fichiers, menant à la confusion (surtout depuis l' *.sln/*.vcproj le fichier de l'ontologie n'est pas bien documentée, ni susceptible d'être bien documenté dans le futur).

En bref, MSVS est une assez bonne IDE, mais terrible pour la construction et la gestion de projet / maintenance. Il semble manquer un fort centre de la conception. Je concède que c'est un (très) dur de problème, les personnes qui ont travaillé sur "build" pour des décennies, et à mon humble avis de l'état-of-the-art n'est pas très bon. Cependant, MSVS est plus vraiment une "conception par le comité", y compris des trucs à partir de l'évolution à travers les grands a répondu à des révisions.

Ainsi, les plus "bonne" réponse à votre question est "non": MSVS n'est pas conçu pour faire ce que vous voulez (par exemple, l'entretien de la solution/les configurations de projet dans MSVS). Cependant, je suis sûr que la réponse de Microsoft serait, "Nous vous avons donné un .NET API, vous pouvez faire votre propre réponse et écrire vos propres outils". Cependant, après de grandes recherches sur ce sujet, à mon humble avis, aucune solution adaptée existe pour ces types d'outils à l'aide de ces types d'Api (bien que vous pouvez sauter dans, et avec beaucoup d'efforts, écrire vos propres outils pour faciliter la maintenance.)

MSVS2010 est de mieux en mieux, mais c'est toujours pas génial pour construire et projet de gestion de la configuration. De nouvelles Api sont utiles, mais ils sont difficiles, et à mon avis pas bien conçu. Le plus probable, Microsoft n'a jamais sérieusement aborder cet aspect de l'IDE: C'est un IDE, prévu pour le développement accéléré de l'itération, et non destinées à construire-projet-et-solution d'entretien. (Plus de détails peuvent être trouvés sur ce sujet si vous creusez profondément dans les forums MSDN).

Il doit y avoir une meilleure façon de faire c'. Toute autre alternative d'outils?

Oui et oui: Pour tous les systèmes de construction, le problème est la "données d'enregistrement", qui est ce que vous voulez pour une configuration: Ces fichiers, ces macros définies, ces arguments de ligne de commande, ce type de cible, etc. De ce que (ce qui est vérifié avec votre code source), le "réel" construire des fichiers/scripts doivent être générés.

Bien sûr, j'ai juste décrit CMake (qui génère des "fichiers" à partir de données de la source d'enregistrement du fichier), et une foule d'autres outils. Ils sont votre meilleur pari. Dans ce cas, CMake fait un bon travail de générer *.sln et *.vcproj fichiers, mais pas de beaucoup d'autres outils (il est un peu difficile en raison de la complexité à l'intérieur de ces fichiers, et largement leurs pas-bien documenté de détails). Un autre outil qui fait un assez bon travail générant *.vcproj est qmake, (ce qui est un bon build outil gestionnaire de configuration, même si vous n'utilisez pas les bibliothèques Qt). Un autre (de la même idée), c'est Google "gyp" (abréviation de "générer de-vos-projets", ce qui devrait générer *.sln/*.vcproj fichiers, mais je ne suis pas sûr qu'il soit prêt pour le "prime time".

Pour tous ces outils, le flux de travail implique:

  1. Mettre à jour les données d'enregistrement des fichiers;
  2. (Re)générer l' *.sln/*.vcproj fichiers.
  3. Utiliser le générés *.sln/*.vcproj fichiers dans votre MSVS IDE, ou de la version de ligne de commande.

Si vous ne voulez pas un outil externe, mais serait plutôt un "plug-in" en quelque sorte qui fonctionne nativement sur votre *.sln/*.vcproj fichiers, je suis pas au courant de quoi que ce soit pour vous aider (et j'ai regardé). Ce n'est pas une pensée nouvelle: Certains outils existent pour fonctionner nativement sur ces fichiers (comme "la version de la migration" outils certaines personnes ont écrit-et-partagée), et certaines personnes ont parlé d'un système de construction nativement "campé" de ces fichiers que les données d'enregistrement, mais ces fichiers sont une sorte de désordre et de sans-papiers, et un déplacement de la cible en ce qui concerne MSVS versions, et ne traitent pas très bien la centralisation de la question de la centralisation des paramètres de construction avec un local-projet-de remplacer, de sorte que c'est vraiment difficile à faire. (Pas de tel système de construction existe à l'heure actuelle qui est "campé sur" le MS fichiers natifs, autres que les MSVS, je ne pense pas.)

MSVS2010 fait de la création d'un tel plug-in "plus facile" que les précédents MSVS versions, mais je ne pense pas qu'un tel plug-in existe pas encore (et je ne pense qu'un tel généralisée plug-in a une forte probabilité de succès, parce que ce que vous demandez n'est pas une priorité pour le MSVS, qui est principalement une IDE, pas un gestionnaire de configuration). Plutôt, vous aurez plus de chances d'avoir à creuser dans la .NET API pour écrire votre propre (non trivial de travaux et d'entretien), ou à essayer de se pencher sur Visual Studio Propriétés du Projet (mais je ne pense pas que vous donner ce que vous voulez).

Enfin, (hors-sujet), je suis en train d'écrire un tel outil, qui s'appuie sur des méthodes heuristiques pour l'auto-générer et de l'auto-maintien de ces types de dépendances du projet, et je suis en train d'écrire-out *.sln/*.vcproj fichiers. Ce n'est pas prête pour le "prime-time", mais je serais intéressé par votre projet, gestion de la configuration de questions, et je suis prêt à partager l'outil(s) si cela s'avère utile pour vous (c'est personnel hobby développement en C++, actuellement Windows, mais si port Posix avec peu d'effort).

6voto

ThomasMcLeod Points 2717

Je doute qu'il existe une extension qui fait exactement ce que vous voulez faire. Cependant Visual Studio 2010 a un joli ensemble robuste de COM, automatisation des interfaces qui vous permet de personnaliser n'importe quelle partie de l'IDE, y compris le gestionnaire de configuration, configuations, des solutions, des projets, etc. Vous pouvez utiliser n'importe quelle langue que vous voulez, y compris C#, VB6, C++. Vous pouvez même écrire une macro en VB Script.

Voici un aperçu graphique de Visual Studio 2010 Modèle d'Objet

En particulier, voir:

Interface De Configuration

ConfigurationManager Interface

Les Configurations De L'Interface

Solution2 Interface

SolutionConfiguration2 Interface

SolutionBuild2 Interface

1voto

Grim Points 734

Les fichiers sln et vcproj sont en réalité des fichiers XML. Je me retrouve souvent à les éditer à la main dans un éditeur de texte pour effectuer diverses tâches qui sembleraient autrement impossibles à effectuer à partir de l'interface utilisateur. L'interface utilisateur effectue souvent des opérations incomplètes, par exemple, lorsque vous renommez un projet, toutes les entrées ne sont pas mises à jour. Je préfère généralement le faire moi-même à la main.

0voto

Roger Willcocks Points 739

Je n'ai pas eu à le faire moi-même, mais il y a des exemples de cela dans le code à cette adresse:

http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/5de5439a-5bd1-4a9f-aba4-b4a0e91e518e/

Cependant, vous devriez également consulter ces informations: Construire Des Configurations

Comme il indique que la réalisation de tels changements peuvent causer des configurations de projet et des configurations de solution pour être automatiquement créée ou affectée.

Si vous voulez comme un complément que vous pouvez exécuter, vous aurez probablement besoin d'écrire votre propre, j'ai peur.

0voto

GregC Points 4679

Suite à Roger Willcocks lien, je suis tombé sur Carlos Quintero du blog. Lecture intéressante, il me semble. Entre autres choses, il mentionne des difficultés rencontrées en essayant de nettoyer les configurations de projet.

Jetant un coup d'oeil sur la documentation de Microsoft, il semble que EnvDTE80 a à peu près resté le même depuis VS2005.


EDIT: en prenant un coup d'oeil à EnvDTE100...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X