Wie kann ich Visual Studio anweisen, Ordner von der Suche in Dateien auszuschließen?

88

Wir verwenden Subversion, daher haben wir in unserer Lösung Unterordner mit dem Namen _svn. Wenn Sie in Dateien suchen, werden Zeichenfolgen aus diesen Unterordnern zurückgegeben. Gibt es eine Möglichkeit, Visual Studio anzuweisen, diese Dateien zu ignorieren?

Bernard
quelle
7
Dies hat mich bei Visual Studios Find in Files ziemlich gestört. Wie @rafbel erwähnt hat, schalte ich am Ende die "Include-Unterordner" aus, aber das sind nur zusätzliche Schritte oder das Vergessen, sie später auszuschalten. Es wäre schön zu sagen, den Hauptstammordner zu durchsuchen, aber meinen "Lieferanten" -Ordner zu ignorieren, da ich mir keine Sorgen um Bibliotheken von Drittanbietern mache.
Rich Finelli
Wenn jemand diese Frage findet oder zur UserVoice-Seite von VS hinzufügt, posten Sie bitte hier einen Link, damit wir sie alle positiv bewerten können!
Pbarranis
Das macht mich verrückt. Ich habe kürzlich die Möglichkeit entdeckt, das Dropdown-Feld "Suchen in" anzupassen. Unsere Lösung umfasst mehrere Projekte, aus denen sich das Installationsprogramm zusammensetzt. Daher ist es hilfreich, die Suche auf nur diese Projekte zu beschränken, während ich daran arbeite. Also habe ich ein Installer-Profil "Look in" erstellt. Sofern ich nicht jeden Ordner und Unterordner jedes Projekts manuell angeben möchte, muss ich "Unterordner einschließen" aktiviert lassen. Dadurch werden alle Ordner bin und obj erfasst. Sehr nervig.
Brian Colavito

Antworten:

31

Sie können eine Reihe von Ordnern einrichten, die für die Suche verwendet werden. Im Fenster "Suchen und Ersetzen" haben Sie rechts neben der Eingabe "Suchen in" die Option "Suchordner auswählen", mit der Sie diese Ordnersätze einrichten können.
Denken Sie daran, die Optionen "Unterordner einschließen" zu deaktivieren, wenn Sie einen Stammprojektordner hinzugefügt haben.
Wenn Sie nicht Hunderte von Ordnern haben, sollte diese Lösung funktionieren.

rafbel
quelle
15
Nein, sollte es nicht, weil es erklärt, wie Ordner in die Suche einbezogen werden, anstatt sie auszuschließen. Das ist meiner Meinung nach ein ziemlich großer Unterschied.
Jan Palas
2
Ich habe Hunderte von Ordnern. Sie leben alle in einem namens node_moduleslol
nichts ist
22

Wir hatten nie ein Problem mit der globalen Suche, bis wir zu Visual Studio 2017 wechselten und mit Angular + .net Core-Anwendungen begannen ... (meistens Probleme mit dem durchsuchten Ordner HUGE node_modules)

Ich habe festgestellt, dass die Verwendung der MSBuild-Ausschlusseigenschaft DefaultItemExcludes gut funktioniert, um sie in Visual Studio 2017 von der globalen Suche auszuschließen.

Ich öffne jetzt standardmäßig die Projektdatei (.csproj) für ein neues Kernprojekt in VS2017 und passe die Eigenschaft wie folgt an, um die node_modules auszuschließen (manchmal füge ich auch die wwwroot hinzu):

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

Siehe auch https://github.com/dotnet/cli/issues/7525 . Dort wird empfohlen, den Ordnern ein vorangestelltes Schrägstrich anstelle eines umgekehrten Schrägstrichs vorzulegen, wie folgt:

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

Ich hoffe, dies hilft allen, die Probleme mit der globalen Suche / Suche nach VS2017 haben.

AardVark71
quelle
Vielen Dank. Seltsam, dass diese Frage auf SO oft gestellt wird und niemand diese Antwort gefunden hat
Ashraf Sabry
Danke, das sollte die Antwort sein
Dan Parker
Alle meine Angular-Projekte in Visual Studio 2017 sind "Ordner" -Projekte ohne MSBuild-Dateien oder Projektdateien ( *.csprojusw.), daher kann ich keine Einstellungen DefaultItemExcludesvornehmen. Bin ich SOL?
Dai
Dies funktioniert nicht für VS 2019. Ich habe versucht, die bootstrap.cssDatei auszuschließen , aber sie wurde trotzdem durchsucht. <DefaultItemExcludes>assets/css/**;$(DefaultItemExcludes)</DefaultItemExcludes>
VDWWD
13

Unter "In Dateien suchen", unter "Dateitypen" oder "Diese Dateitypen anzeigen" können Sie Folgendes verwenden:

!*\ExcludeFolder\*

Beispiel:

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

Geben Sie hier die Bildbeschreibung ein

A. Morel
quelle
Dieser Screenshot stammt aus VS 2019. Diese Antwort funktioniert in VS 2017 nicht.
Scott Hutchinson
Dies ist genau das, wonach ich gesucht habe, als ich in VS2019 auf dieses Problem gestoßen bin. Danke dir!
Mass Dot Net
1
Tolles Zeug. Ich benutze Node und möchte nie den Ordner node_modules durchsuchen. Danke
BoundForGlory
9

Ich hatte dieses Problem beim Wechsel zu Windows 10 mit Visual Studio 2015 und TortoiseSVN. Bisher waren alle .svn-Ordner ausgeblendet und wurden nicht in den Suchergebnissen angezeigt. Um dies zu lösen, ging ich einfach zu den Ordnereigenschaften im Windows Explorer und überprüfte das Attribut 'Hidden' für den Ordner .svn. Nach dem Aktualisieren der Ordneransicht in Visual Studio wird der .svn-Ordner nicht mehr angezeigt und bei Verwendung von Suchen! Ignoriert.

Setzen Sie das Ordnerattribut .svn auf versteckt

helle Funktion
quelle
Leider habe ich VS 2017 noch nicht installiert, daher kann ich dies nicht überprüfen.
helle Funktion
1
Dies scheint in VS 2017 nicht zu funktionieren. Außerdem verhindert es, dass IISExpress den Ordner findet, sodass auch
Dinge
Funktioniert perfekt in VS 2015 Pro. Ich habe noch keine nachteiligen Auswirkungen gesehen :-)
BizzyBob
5

Anstatt nach Dateien in einem Verzeichnis zu suchen (in diesem Fall im Verzeichnis Ihrer Lösung), können Sie Ihre Suche auf die Dateien beschränken, die Teil des Projekts oder der Lösung sind. Die in den _svn-Verzeichnissen werden daher ignoriert.

Xavier Nodet
quelle
2
Wir haben Projektordner in der Lösung verschachtelt. Es ist also zeitaufwändig, in jeden zu gehen, um etwas zu finden
Bernard
Das Dialogfeld "In Dateien suchen" enthält ein Eingabefeld "Suchen in", das auf "Aktuelles Projekt" oder "Gesamte Lösung" festgelegt werden kann. Ist letzteres nicht nützlich für Sie? Ich muss etwas verpasst haben, dann ...
Xavier Nodet
2
@XavierNodet Zumindest in meinem Fall gibt es Dateien in meiner Lösung, die ich nie durchsuchen möchte, aber ich brauche sie in meiner Lösung, damit sie in das Ausgabeverzeichnis kopiert werden - z. Testvorrichtungen oder andere statische, textbasierte Ressourcen.
Tom Lianza
5

Ich habe in Visual Studio 2017 insbesondere bei Verwendung von Angular Cli festgestellt, dass die generierten Javascript-Dateien oder andere Build-Dateien manchmal unwissentlich zu Ihrem Projekt hinzugefügt werden können. Dies kann zu mehreren Kopfschmerzen führen, einschließlich des Hinzufügens einer Reihe von Dateien zu den Suchvorgängen und der Verlangsamung, insbesondere von Intellisense, da alle generierten Dateien über den Quelldateien durchsucht werden.

Der einfachste Weg, dies zu korrigieren, besteht darin, einfach mit der rechten Maustaste auf den Build-Ordner (dh {Project}/dist) zu klicken und auszuwählen Exclude from Project. Dadurch wird der Ordner aus dem Projekt entfernt, der generierte Inhalt bleibt jedoch zur Laufzeit verfügbar. Er wird nur vor der Benutzeroberfläche ausgeblendet.

Geben Sie hier die Bildbeschreibung ein

Wenn Sie die Dateien weiterhin anzeigen möchten, können Sie versteckte Verzeichnisse und Dateien anzeigen, indem Show all FilesSie Geben Sie hier die Bildbeschreibung ein oben im Projektmappen-Explorer das Symbol auswählen oder darauf klicken .

Grundsätzlich möchten Sie alle Build-Ordner von Ihrem Projekt / Ihrer Lösung ausschließen.

Andy Braham
quelle
Ich glaube nicht, dass Sie einen Ordner "ausschließen" können, nur Dateien. Zumindest in meiner Version von Visual Studio 2017. Wenn ich mit der rechten Maustaste auf einen Ordner in meinem Projekt klicke, wird die Option Aus Projekt ausschließen nicht im Kontextmenü angezeigt.
Pete
1
Diese Option ist nicht für Website-Projekte in VS 2017 verfügbar.
richardtallent
@richardtallent: Ich habe sowohl in VS2017 als auch in VS2019 doppelt geprüft, und die Option zum Entfernen des Ordners ist vorhanden. In meiner aktualisierten Antwort finden Sie einen Screenshot, in dem Sie die Option finden.
Andy Braham
@AndyBraham, ich verwende den WebSite-Projekttyp (E24C65DC-7377-472B-9ABA-BC803B73C61A in der Lösungsdatei), der meines Erachtens ein älterer Projekttyp ist, der im Dialogfeld "Neues Projekt" möglicherweise nicht mehr verfügbar ist. Die Option "Ausschließen" ist im Kontextmenü für Ordner in Projekten dieses Typs nicht verfügbar. Ich erstelle meine Site außerhalb von VS mit Vue CLI / UI und Gulp. Die einzige Lösung, die für mich funktioniert hat, war, das Projekt einfach aus meiner Lösung zu entfernen (ich verwende ohnehin VS-Code für den Front-End-Code).
richardtallent
3

Ich glaube nicht, dass Sie dies einstellen können (schließlich fragen Sie nach der Suche nach "Gesamter Lösung"), aber häufig können Sie den Ordner aus dem Projekt entfernen / das Verzeichnis im Dateisystem ausblenden (für den Projekttyp der Website).

Lukáš Lánský
quelle