Come faccio a dire a Visual Studio di escludere cartelle da Trova nei file?


89

Usiamo subversion quindi abbiamo sottocartelle denominate _svn nella nostra soluzione. L'esecuzione di una ricerca nei file restituisce le stringhe da queste sottocartelle. C'è comunque per dire a Visual Studio di ignorare questi file?


7
Questo mi ha infastidito un po 'con Find in Files di Visual Studio. Come menzionato da @rafbel, finisco per disattivare "include sottocartelle", ma questo finisce per essere un passaggio extra o dimenticarmi di disattivarlo in seguito. Sarebbe bello dire di cercare nella cartella principale principale, ma ignora la mia cartella "fornitori" perché non sono preoccupato per le librerie di terze parti ..
Rich Finelli

Se qualcuno trova o aggiunge questa domanda alla pagina UserVoice di VS, per favore pubblica un link qui in modo che possiamo votarla tutti!
pbarranis

Questo mi fa impazzire. Recentemente ho scoperto la possibilità di personalizzare la casella a discesa "Cerca in". La nostra soluzione include diversi progetti che compongono la parte del programma di installazione, quindi è bello limitare le ricerche solo a quei progetti mentre ci sto lavorando. Quindi ho creato un profilo di installazione "Guarda in". Tuttavia, a meno che non voglia specificare manualmente ogni cartella e sottocartella di ogni progetto, devo lasciare selezionato "Includi sottocartelle". Questo raccoglie tutte le cartelle bin e obj. Molto noioso.
Brian Colavito

Risposte:


31

Quello che puoi fare è impostare una serie di cartelle che verranno utilizzate per la ricerca. Nella finestra Trova e sostituisci, sul lato destro dell'input "Cerca in" hai un'opzione "Scegli cartelle di ricerca" in cui puoi impostare questi gruppi di cartelle.
Ricorda solo di disattivare le opzioni "Includi sottocartelle" se hai aggiunto la cartella principale del progetto.
Se non hai centinaia di cartelle, questa soluzione dovrebbe funzionare.


15
No, non dovrebbe, perché spiega come includere le cartelle nella ricerca invece di escluderle. Questa è una bella differenza IMHO.
Jan Palas

2
Ho centinaia di cartelle. Vivono tutti in uno chiamato node_moduleslol
niente è necessario il

23

Non abbiamo mai avuto problemi con la ricerca globale fino a quando non siamo passati a Visual Studio 2017 e abbiamo iniziato con le applicazioni Angular + .net Core ... (principalmente problemi con la cartella ENORME node_modules ricercata)

Ho scoperto che l'utilizzo della proprietà di esclusione di MSBuild DefaultItemExcludes funziona correttamente per escludere dalla ricerca globale in Visual Studio 2017 ..

Ora per impostazione predefinita apro il file di progetto (.csproj) per un nuovo progetto principale in VS2017 e aggiusto la proprietà come segue per escludere node_modules (a volte aggiungo anche wwwroot):

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

Vedi anche https://github.com/dotnet/cli/issues/7525 , lì consigliano di anteporre le cartelle da escludere e sembrano usare una barra in avanti invece di una barra all'indietro, in questo modo:

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

Spero che questo aiuti chiunque abbia problemi con la ricerca / ricerca globale VS2017.


Grazie mille. Strano che questa domanda sia stata posta molte volte su SO e nessuno ha capito questa risposta
Ashraf Sabry

Grazie, questa dovrebbe essere la risposta
Dan Parker

Tutti i miei progetti Angular in Visual Studio 2017 sono progetti "Cartelle" senza file MSBuild o file di progetto ( *.csprojecc.), Quindi non posso impostare da DefaultItemExcludesnessuna parte. Sono SOL?
Dai

Questo non funziona per VS 2019. Ho provato ad escludere il bootstrap.cssfile ma è stato cercato comunque. <DefaultItemExcludes>assets/css/**;$(DefaultItemExcludes)</DefaultItemExcludes>
VDWWD

18

Da "Trova nei file", in "Tipi di file" o "Guarda questi tipi di file", puoi utilizzare:

!*\ExcludeFolder\*

Esempio:

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

inserisci qui la descrizione dell'immagine


Quella schermata è di VS 2019. Questa risposta non funziona in VS 2017.
Scott Hutchinson,

1
Questo è esattamente quello che stavo cercando, quando mi sono imbattuto in questo problema in VS2019. Grazie!
Mass Dot Net

1
Roba impressionante. Uso Node e non voglio mai cercare nella cartella node_modules. Grazie
BoundForGlory

9

Ho avuto questo problema durante il passaggio a Windows 10 utilizzando Visual Studio 2015 e TortoiseSVN. In precedenza le cartelle .svn erano tutte nascoste, quindi non apparivano nei risultati di ricerca. Per risolvere questo problema, sono semplicemente andato alle proprietà della cartella in Esplora risorse e ho controllato l'attributo "Nascosto" per la cartella .svn. Dopo aver aggiornato la visualizzazione delle cartelle in Visual Studio, la cartella .svn non viene più visualizzata e viene ignorata quando si utilizza Trova!

Imposta l'attributo della cartella .svn su nascosto


Mi spiace, non ho ancora installato VS 2017 quindi non posso verificarlo.
luminosa

1
Questo non sembra funzionare in VS 2017. Inoltre, impedisce a IISExpress di trovare la cartella, quindi ha rotto anche cose :(
pbarranis

Funziona perfettamente in VS 2015 Pro. Non ho ancora visto alcun effetto negativo :-)
BizzyBob

5

Invece di cercare i file in una directory (la directory della soluzione, in questo caso), è possibile limitare la ricerca ai file che fanno parte del progetto o della soluzione. Quelli nelle directory _svn verranno quindi ignorati.


2
Abbiamo cartelle di progetti annidate all'interno della soluzione. Quindi entrare in ognuno per trovare qualcosa richiede tempo
Bernard

La finestra di dialogo "Trova nei file" ha un campo di immissione "Cerca in" che può essere impostato su "Progetto corrente" o "Soluzione completa". Quest'ultimo non ti è utile? Devo essermi perso qualcosa, quindi ...
Xavier Nodet

2
@XavierNodet almeno nel mio caso, ci sono file che ho nella mia soluzione che non voglio mai cercare, ma ho bisogno nella mia soluzione in modo che vengano copiati nella directory di output - es. dispositivi di prova o altre risorse statiche basate su testo.
Tom Lianza

5

Ho scoperto in Visual Studio 2017, soprattutto quando si utilizza Angular Cli, che i file javascript generati o altri file di build possono essere aggiunti al progetto a volte inconsapevolmente. Ciò può causare diversi mal di testa, inclusa l'aggiunta di un gruppo di file alle ricerche e il rallentamento delle cose, soprattutto intellisense perché sta cercando tutti i file generati sopra i file di origine.

Il modo più semplice che ho trovato per correggerlo è semplicemente fare clic con il pulsante destro del mouse sulla cartella build (cioè {Project}/dist) e selezionare Exclude from Project. Questo rimuoverà la cartella dal progetto ma i contenuti generati saranno ancora disponibili per il runtime, sono semplicemente nascosti dall'interfaccia utente.

inserisci qui la descrizione dell'immagine

Se hai ancora bisogno di vedere i file, puoi mostrare directory e file nascosti selezionando Show all Fileso facendo clic sull'icona: inserisci qui la descrizione dell'immagine nella parte superiore di Esplora soluzioni.

Fondamentalmente vuoi escludere tutte le cartelle di build dal tuo progetto / soluzione.


Non credo che si possa "escludere" una cartella, solo file. Almeno sulla mia versione di Visual Studio 2017. Quando faccio clic con il pulsante destro del mouse su una cartella nel mio progetto, l'opzione Escludi dal progetto non viene visualizzata nel menu di scelta rapida.
Pete

1
Questa opzione non è disponibile per i progetti di siti Web in VS 2017.
richardtallent

@richardtallent: ho ricontrollato sia in VS2017 che in VS2019 e l'opzione per rimuovere la cartella è presente. Si prega di consultare la mia risposta aggiornata per uno screenshot in cui trovare l'opzione.
Andy Braham,

@ AndyBraham, sto utilizzando il tipo di progetto WebSite (E24C65DC-7377-472B-9ABA-BC803B73C61A nel file della soluzione), che credo possa essere un tipo di progetto legacy non più disponibile nella finestra di dialogo Nuovo progetto. L'opzione "escludi" non è disponibile nel menu contestuale per cartelle in progetti di questo tipo. Ho creato il mio sito al di fuori di VS utilizzando Vue CLI / UI e Gulp, quindi l'unica soluzione che ha funzionato per me è stata la semplice rimozione del progetto dalla mia soluzione (utilizzo comunque VS Code per il codice front-end).
richardtallent

3

Non penso che tu possa impostare questo (dopotutto, stai chiedendo la ricerca "Intera soluzione"), ma spesso puoi rimuovere la cartella dal progetto / nascondere la directory nel filesystem (per il tipo di progetto Sito Web).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.