Obtenir la liste des fichiers de solution / projet pour le complément VS ou le plug-in DXCore
Je suis en train d'écrire un add-in pour Visual Studio qui, entre autres choses, le besoin de garder une trace de chaque fichier dans une solution Visual Studio. Je sais ce que les événements j'ai besoin de vous inscrire (lorsqu'une Solution est ouvert, lorsqu'un fichier est ajouté/supprimé/modifié dans, le même pour les projets, etc), mais je ne comprends pas comment en fait pour obtenir une liste de fichiers à partir de tout ça.
J'ai récemment installé CodeRush et ont joué avec le DXCore cadre. Je suis très heureux avec elle de l'approche à des plugins, mais je ne vois toujours un moyen évident pour obtenir une liste des fichiers dans la solution.
Donc pour résumer: Comment, via Visual Studio SDK ou DXCore, puis-je avoir une liste fiable des fichiers dans la solution et de ses projets?
source d'informationauteur Dusda
Vous devez vous connecter pour publier un commentaire.
C'est tout à disposition facilement à l'aide de DTE dans Visual Studio SDK.
Vous pouvez obtenir une liste de projets dans une solution à l'aide de la Projets interface.
Vous pouvez obtenir une liste d'éléments dans un projet à l'aide de la ProjectItem interface.
Pour plus d'informations, je vous recommande la lecture sur Le contrôle des Projets et des Solutions.
Merci, Reed; l'article que vous avez lié m'a fait assez loin pour obtenir une preuve de concept de concocter dans un couple de minutes.
Comme je pense que c'est lié, ici, c'est le itération et récursive moyen par lequel j'ai recueilli les ProjectItems. Je l'ai fait en DXCore, mais la même idée s'applique à la crue de Visual Studio SDK (DXCore est simplement plus agréable à la recherche d'un wrapper sur le SDK). La "Solution", "Projets", "Projet", et " ProjectItem les objets sont là dans EnvDTE.
Réglage De Projets
Itération sur les Projets de tirer ProjectItems
Enfin, La récursivité-je faire pour récupérer tous les ProjectItems dans la Solution active
Voir EnvDTE : l'Obtention de tous les projets (le SolutionFolder PITA)
Cette solution fonctionne à merveille pour obtenir tous les projets de la solution, même si les projets sont dans les sous-dossiers.
Assurez-vous de lire les commentaires ci-dessous le code, comme il le souligne un élément essentiel correctif, utilisez-le pour saisir DTE2 au lieu de l'original du code, ou bien qu'il ne soit pas la bonne instance de Visual Studio:
(le code a été mis à jour pour inclure correctif ci-dessus)