Comment dire à Visual Studio d'exclure des dossiers de la recherche dans les fichiers?

89

Nous utilisons subversion donc nous avons des sous-dossiers nommés _svn dans notre solution. Faire une recherche dans les fichiers renvoie les chaînes de ces sous-dossiers. Est-il possible de dire à Visual Studio d'ignorer ces fichiers?

Bernard
la source
7
Cela m'a un peu dérangé avec Find in Files de Visual Studio. Comme @rafbel l'a mentionné, je finis par désactiver le "Inclure les sous-dossiers" mais cela finit par être des étapes supplémentaires ou en oubliant de le désactiver plus tard. Ce serait bien de dire de rechercher le dossier racine principal, mais d'ignorer mon dossier "vendeurs" car je ne suis pas inquiet pour les bibliothèques tierces.
Rich Finelli
Si quelqu'un trouve ou ajoute cette question à la page UserVoice de VS, veuillez poster un lien ici afin que nous puissions tous la voter!
pbarranis
Cela me rend fou. J'ai récemment découvert la possibilité de personnaliser la liste déroulante "Regarder dans". Notre solution comprend plusieurs projets qui composent la partie installateur, il est donc intéressant de limiter les recherches à ces projets uniquement pendant que je travaille dessus. J'ai donc créé un profil d'installation "Look in". Cependant, à moins que je ne veuille spécifier manuellement chaque dossier et sous-dossier de chaque projet, je dois laisser "Inclure les sous-dossiers" coché. Cela récupère tous les dossiers bin et obj. Très ennuyant.
Brian Colavito

Réponses:

31

Ce que vous pouvez faire est de configurer un ensemble de dossiers qui seront utilisés pour la recherche. Dans la fenêtre Rechercher et remplacer, sur le côté droit de l'entrée «Rechercher dans», vous avez une option «Choisir les dossiers de recherche» dans laquelle vous pouvez configurer ces ensembles de dossiers.
N'oubliez pas de désactiver les options "Inclure les sous-dossiers" si vous avez ajouté un dossier de projet racine.
Si vous n'avez pas des centaines de dossiers, cette solution devrait fonctionner.

Rafbel
la source
15
Non, il ne devrait pas, car il explique comment inclure des dossiers dans la recherche au lieu de les exclure. C'est une grande différence à mon humble avis.
Jan Palas
2
J'ai des centaines de dossiers. Ils vivent tous dans un seul appelé node_moduleslol
rien n'est nécessaire
23

Jamais eu de problème avec la recherche globale jusqu'à ce que nous passions à Visual Studio 2017 et que nous ayons commencé avec les applications Angular + .net Core ... (principalement des problèmes avec le dossier HUGE node_modules recherché)

J'ai trouvé que l'utilisation de la propriété d'exclusion MSBuild DefaultItemExcludes fonctionne correctement pour exclure de la recherche globale dans Visual studio 2017.

J'ouvre maintenant par défaut le fichier de projet (.csproj) pour un nouveau projet principal dans VS2017 et ajuste la propriété comme suit pour exclure les node_modules (parfois j'ajoute aussi le wwwroot):

<DefaultItemExcludes>$(DefaultItemExcludes);node_modules\**</DefaultItemExcludes>

Voir aussi https://github.com/dotnet/cli/issues/7525 , là, ils conseillent de préfixer les dossiers à exclure et semblent utiliser une barre oblique au lieu d'une barre oblique arrière, comme ceci:

<PropertyGroup>
  <DefaultItemExcludes>node_modules/**;$(DefaultItemExcludes)</DefaultItemExcludes>
</PropertyGroup>

J'espère que cela aidera toute personne rencontrant des problèmes avec la recherche / recherche globale VS2017.

AardVark71
la source
Merci beaucoup. Bizarre que cette question soit posée plusieurs fois sur SO et que personne n'ait compris cette réponse
Ashraf Sabry
Merci, cela devrait être la réponse
Dan Parker
Tous mes projets Angular dans Visual Studio 2017 sont des projets «Dossiers» sans aucun fichier MSBuild ou fichier de projet ( *.csprojetc.), donc je ne peux pas définir DefaultItemExcludesnulle part. Suis-je SOL?
Dai
Cela ne fonctionne pas pour VS 2019. J'ai essayé d'exclure le bootstrap.cssfichier mais il a quand même été recherché. <DefaultItemExcludes>assets/css/**;$(DefaultItemExcludes)</DefaultItemExcludes>
VDWWD
18

Depuis «Rechercher dans les fichiers», dans «Types de fichiers» ou «Regardez ces types de fichiers», vous pouvez utiliser:

!*\ExcludeFolder\*

Exemple:

!*\bin\*;!*\obj\*;!*\.*;!*\ExcludeFolder\*

entrez la description de l'image ici

A. Morel
la source
Cette capture d'écran est de VS 2019. Cette réponse ne fonctionne pas dans VS 2017.
Scott Hutchinson
1
C'est exactement ce que je recherchais lorsque j'ai rencontré ce problème dans VS2019. Merci!
Mass Dot Net le
1
Des trucs géniaux. J'utilise Node et je ne veux jamais chercher dans le dossier node_modules. Thanks
BoundForGlory
9

J'ai eu ce problème lors du passage à Windows 10 en utilisant Visual Studio 2015 et TortoiseSVN. Auparavant, les dossiers .svn étaient tous masqués et n'apparaissaient donc pas dans les résultats de recherche. Pour résoudre ce problème, je suis simplement allé dans les propriétés du dossier dans l'Explorateur Windows et j'ai vérifié l'attribut «Caché» pour le dossier .svn. Après avoir actualisé la vue des dossiers dans Visual Studio, le dossier .svn n'apparaît plus et est ignoré lors de l'utilisation de Find!

Définir l'attribut de dossier .svn sur masqué

fonction lumineuse
la source
Désolé, je n'ai pas encore installé VS 2017, je ne peux donc pas vérifier cela.
Brightfunction
1
Cela ne semble pas fonctionner dans VS 2017. De plus, cela empêche IISExpress de trouver le dossier, donc il a aussi cassé des choses :(
pbarranis
Fonctionne parfaitement dans VS 2015 Pro. Je n'ai pas encore vu d'effets indésirables :-)
BizzyBob
5

Au lieu de rechercher des fichiers dans un répertoire (le répertoire de votre solution, dans ce cas), vous pouvez limiter votre recherche aux fichiers qui font partie du projet ou de la solution. Ceux des répertoires _svn seront donc ignorés.

Xavier Nodet
la source
2
Nous avons des dossiers de projets imbriqués dans la solution. Donc entrer dans chacun d'eux pour trouver quelque chose prend du temps
Bernard
La boîte de dialogue «Rechercher dans les fichiers» comporte un champ de saisie «Rechercher dans» qui peut être défini sur «Projet actuel» ou «Solution complète». Ce dernier n'est-il pas utile pour vous? J'ai dû manquer quelque chose, alors ...
Xavier Nodet
2
@XavierNodet dans mon cas au moins, il y a des fichiers que j'ai dans ma solution que je ne veux jamais rechercher, mais dont j'ai besoin dans ma solution pour qu'ils soient copiés dans le répertoire de sortie - ex. des montages de test ou d'autres ressources statiques et textuelles
Tom Lianza le
5

J'ai trouvé dans Visual Studio 2017, en particulier lors de l'utilisation d' Angular Cli, que les fichiers javascript générés ou d'autres fichiers de construction peuvent être ajoutés à votre projet parfois sans le savoir. Cela peut causer plusieurs maux de tête, y compris ajouter un tas de fichiers aux recherches et ralentir vraiment les choses, en particulier intellisense car il recherche tous les fichiers générés au-dessus des fichiers source.

Le moyen le plus simple que j'ai trouvé pour corriger cela est simplement de faire un clic droit sur le dossier de construction (c'est-à-dire {Project}/dist) et de sélectionner Exclude from Project. Cela supprimera le dossier du projet, mais le contenu généré sera toujours disponible pour l'exécution, il est simplement masqué de l'interface utilisateur.

entrez la description de l'image ici

Si vous avez besoin de toujours voir les fichiers, vous pouvez afficher les répertoires et fichiers cachés en sélectionnant Show all Filesou en cliquant sur l'icône: entrez la description de l'image ici en haut de l'Explorateur de solutions.

Fondamentalement, vous souhaitez exclure tous les dossiers de construction de votre projet / solution.

Andy Braham
la source
Je ne pense pas que vous puissiez "exclure" un dossier, uniquement des fichiers. Au moins sur ma version de Visual Studio 2017. Lorsque je clique avec le bouton droit sur un dossier de mon projet, l'option Exclure du projet n'apparaît pas dans le menu contextuel.
Pete
1
Cette option n'est pas disponible pour les projets de site Web dans VS 2017.
richardtallent
@richardtallent: J'ai vérifié deux fois dans VS2017 et VS2019 et l'option pour supprimer le dossier est là. S'il vous plaît voir ma réponse mise à jour pour une capture d'écran où trouver l'option.
Andy Braham
@AndyBraham, j'utilise le type de projet WebSite (E24C65DC-7377-472B-9ABA-BC803B73C61A dans le fichier de solution), qui, je crois, peut être un type de projet hérité qui n'est plus disponible dans la boîte de dialogue Nouveau projet. L'option "exclure" n'est pas disponible dans le menu contextuel pour les dossiers des projets de ce type. Je construis mon site en dehors de VS en utilisant Vue CLI / UI et Gulp, donc le seul correctif qui a fonctionné pour moi était de simplement supprimer le projet de ma solution (j'utilise de toute façon VS Code pour le code frontal).
richardtallent
3

Je ne pense pas que vous puissiez définir cela (après tout, vous demandez une recherche "Solution complète"), mais souvent vous pouvez supprimer le dossier du projet / masquer le répertoire dans le système de fichiers (pour le type de projet Site Web).

Lukáš Lánský
la source