2009-10-20 5 views
43

Esiste un modo per escludere un particolare tipo di file .cs durante una ricerca in Visual Studio 2005/8?Come escludere designer.cs dalla ricerca di file di Visual Studio

Esempio: In uno scenario di refactoring, è possibile cercare di identificare i valori letterali di stringa nel mio codice in modo da poterli refactoring in costanti o alcuni di essi. Tuttavia, * i file designer.cs sono pieni di stringhe letterali a cui non mi interessa trattare ma compaiono nella mia ricerca e inquinano il set di risultati.

io di solito cerco di Cs * ...

Come faccio a ignorare .designer.cs *?

+0

Qualsiasi possibilità che tu possa inviare la vostra soluzione come una risposta. La risposta accettata è ora il collegamento a un 404 – Blowsie

+2

Possiamo tutti votare per la funzionalità in Visual Studio qui: https://visualstudio.uservoice.com/forums/121579-visual-studio-2015/suggestions/2907413-add-exclude- files-to-the-look-in-options-sotto Doooooo! – Polshgiant

risposta

12

Vedo che è piuttosto tardi, ma guardando il numero di voti e attività su questa pagina, sto postando la mia risposta; forse qualcun altro lo trova utile. Ecco come farlo in VS2010 e versioni successive:

  1. Aprire la console di Gestione pacchetti (Strumenti> Gestore pacchetti NuGet> Console Gestione pacchetti). Consenti a PowerShell di inizializzarsi.
  2. Immettere il seguente comando al prompt PowerShell:

    dir -Recurse | Select-String -pattern "Your Search Word Or Pattern" -exclude "*.designer.cs"

  3. Questo elenco di tutte le occorrenze della parola o il motivo che hai specificato, tra cui il nome del file, il numero di linea e la linea di testo in cui è stato trovato.

note aggiuntive

  1. Se si desidera specificare più escludere schemi, sostituire "*.designer.cs" con @("*.designer.cs", "*.designer.vb", "reference.cs") o qualsiasi altro file che si desidera ignorare.
  2. Un'altra cosa positiva è che il patter di ricerca supporta anche le espressioni regolari.
  3. Uno svantaggio di questa soluzione è che non consente di fare doppio clic su una riga nel risultato per aprire quel file in Visual Studio. È possibile risolvere questa limitazione attraverso il comando delle tubazioni:

    dir -Recurse | Select-String -pattern "Your String Or Pattern" -exclude "*.designer.vb" | sort | Select -ExpandProperty "Path" | get-unique | ForEach-Object { $DTE.ExecuteCommand("File.OpenFile", """$_""") }

Si aprirà tutti i file di cui è stata trovata in Visual Studio la stringa o modello. È quindi possibile utilizzare la finestra Trova in singoli file per individuare le istanze esatte.

Un altro vantaggio di questa soluzione è che funziona anche nelle versioni Express, dal momento che Package Manager è incluso nelle versioni Express 2012 e 2013; non sono sicuro del 2010 però.

+0

Quest'ultimo comando genera un carico di finestre che dice "L'operazione non può essere completata" in Visual Studio 2015 su una soluzione VB. –

+0

Trovato la risposta - Sostituisci ("File.OpenFile", $ _) con ("File.OpenFile", "" "$ _" ""). Questo è per racchiudere i nomi dei file tra virgolette mentre il percorso include spazi. Considerare anche l'aggiunta di * .VB se si sta cercando un'intera soluzione. Ho avuto un sacco di file estranei fino a quando non l'ho fatto. –

5

Il biglietto Microsoft Connect "Find option to exclude designer generated code" indica che il filtro di ricerca per estensione di file non sarà presente in VS 2010.

+1

Questa risposta non è più valida, poiché il filtro per tipo di file è possibile in VS2010 –

+0

@ hamlin11 Puoi fornire un riferimento per questo? –

+1

Certo, ho fatto una schermata. Usa "Trova nei file" http://i.imgur.com/UzI3l.png –

1

Ho appena imbattuto in questa domanda nella mia ricerca di una risposta a questo problema.

Got frustrato con VS e ricadde sulla mia copia fedele di UltraEdit e specificato queste opzioni nella sua funzione "Cerca nei file":

File names/extensions to ignore in search: 

    *.pdb;*.dll;*.exe;*designer.vb;*.xsd;*.xml;*.xss;*.resx; 
+0

@sammeric: Grazie per il suggerimento, e benvenuto in SO. Esiste una versione gratuita di UltraEdit? Mi piace Notepad ++ ma non sembra avere la funzione di ignoranza della ricerca. (A proposito, le firme non sono necessarie nelle risposte SO. Tutti i tuoi post sono autofirmati con il tuo nome e avatar.) –

+0

Sfortunatamente non esiste una versione gratuita di UltraEdit. Ho pagato una copia perché l'ho usata per anni (originariamente per la sua modalità di modifica delle colonne prima che VS aggiungesse quella funzione). Ha un sacco di potenti funzionalità che ne fanno valere personalmente l'esborso. Io uso lo scripting della regex search e sostituisco solo per nominarne una. – samneric

31
*a.cs;*b.cs;*c.cs;*d.cs;*e.cs;*f.cs;*g.cs;*h.cs;*i.cs;*j.cs;*k.cs;*l.cs;*m.cs;*n.cs;*o.cs;*p.cs;*q.cs;*s.cs;*t.cs;*u.cs;*v.cs;*w.cs;*x.cs;*y.cs;*z.cs;*_.cs;*..cs;*ar.cs;*br.cs;*cr.cs;*dr.cs;*fr.cs;*gr.cs;*hr.cs;*ir.cs;*jr.cs;*kr.cs;*lr.cs;*mr.cs;*nr.cs;*or.cs;*pr.cs;*qr.cs;*rr.cs;*sr.cs;*tr.cs;*ur.cs;*vr.cs;*wr.cs;*xr.cs;*yr.cs;*zr.cs;*_r.cs;*.r.cs;*aer.cs;*ber.cs;*cer.cs;*der.cs;*eer.cs;*fer.cs;*ger.cs;*her.cs;*ier.cs;*jer.cs;*ker.cs;*ler.cs;*mer.cs;*oer.cs;*per.cs;*qer.cs;*rer.cs;*ser.cs;*ter.cs;*uer.cs;*ver.cs;*wer.cs;*xer.cs;*yer.cs;*zer.cs;*_er.cs;*.er.cs;*aner.cs;*bner.cs;*cner.cs;*dner.cs;*ener.cs;*fner.cs;*hner.cs;*iner.cs;*jner.cs;*kner.cs;*lner.cs;*mner.cs;*nner.cs;*oner.cs;*pner.cs;*qner.cs;*rner.cs;*sner.cs;*tner.cs;*uner.cs;*vner.cs;*wner.cs;*xner.cs;*yner.cs;*zner.cs;*_ner.cs;*.ner.cs;*agner.cs;*bgner.cs;*cgner.cs;*dgner.cs;*egner.cs;*fgner.cs;*ggner.cs;*hgner.cs;*jgner.cs;*kgner.cs;*lgner.cs;*mgner.cs;*ngner.cs;*ogner.cs;*pgner.cs;*qgner.cs;*rgner.cs;*sgner.cs;*tgner.cs;*ugner.cs;*vgner.cs;*wgner.cs;*xgner.cs;*ygner.cs;*zgner.cs;*_gner.cs;*.gner.cs;*aigner.cs;*bigner.cs;*cigner.cs;*digner.cs;*eigner.cs;*figner.cs;*gigner.cs;*higner.cs;*iigner.cs;*jigner.cs;*kigner.cs;*ligner.cs;*migner.cs;*nigner.cs;*oigner.cs;*pigner.cs;*qigner.cs;*rigner.cs;*tigner.cs;*uigner.cs;*vigner.cs;*wigner.cs;*xigner.cs;*yigner.cs;*zigner.cs;*_igner.cs;*.igner.cs;*asigner.cs;*bsigner.cs;*csigner.cs;*dsigner.cs;*fsigner.cs;*gsigner.cs;*hsigner.cs;*isigner.cs;*jsigner.cs;*ksigner.cs;*lsigner.cs;*msigner.cs;*nsigner.cs;*osigner.cs;*psigner.cs;*qsigner.cs;*rsigner.cs;*ssigner.cs;*tsigner.cs;*usigner.cs;*vsigner.cs;*wsigner.cs;*xsigner.cs;*ysigner.cs;*zsigner.cs;*_signer.cs;*.signer.cs;*aesigner.cs;*besigner.cs;*cesigner.cs;*eesigner.cs;*fesigner.cs;*gesigner.cs;*hesigner.cs;*iesigner.cs;*jesigner.cs;*kesigner.cs;*lesigner.cs;*mesigner.cs;*nesigner.cs;*oesigner.cs;*pesigner.cs;*qesigner.cs;*resigner.cs;*sesigner.cs;*tesigner.cs;*uesigner.cs;*vesigner.cs;*wesigner.cs;*xesigner.cs;*yesigner.cs;*zesigner.cs;*_esigner.cs;*.esigner.cs;*adesigner.cs;*bdesigner.cs;*cdesigner.cs;*ddesigner.cs;*edesigner.cs;*fdesigner.cs;*gdesigner.cs;*hdesigner.cs;*idesigner.cs;*jdesigner.cs;*kdesigner.cs;*ldesigner.cs;*mdesigner.cs;*ndesigner.cs;*odesigner.cs;*pdesigner.cs;*qdesigner.cs;*rdesigner.cs;*sdesigner.cs;*tdesigner.cs;*udesigner.cs;*vdesigner.cs;*wdesigner.cs;*xdesigner.cs;*ydesigner.cs;*zdesigner.cs;*_designer.cs 

Ciao, basta copiare e incollare il sopra per " Guardate questi tipi di file:"

-Steven Chong

+3

Sebbene ciò funzioni in quanto '* .designer.cs' non viene visualizzato nei risultati della ricerca, l'elenco in bianco non è lo stesso della lista nera dei criteri. Ad esempio, se volessi ignorare '* .designer.cs' e' Reference.cs', questa white-list fallisce. –

+0

è una soluzione alternativa, Visual Studio salverà la tua lista. posso postare un'altra white-list se vuoi ignorare sia * .designer.cs che reference.cs, che personalmente ho trovato utile e voglio condividere –

+7

è così brutto che mi piace :-D – slawekwin

9

Per Visual Studio 2010 provare l'estensione Ultra Find. Puoi escludere esplicitamente le estensioni.

Using Ultra Find to search files with cs extension but excluding designer.cs and generated.cs files.

Si noti che la velocità di ricerca dipende se siete alla ricerca del file system o il progetto/soluzione.

+8

Sfortunatamente non esiste una ricerca Regex in Ultra Find, riduce alcune delle Ultraness ... – Helo

+2

È un peccato che l'estensione Ultra Find sia stata rimossa. Qualcuno sa di nient'altro? – wasatchwizard

+0

@wasatchwizard Sto anche cercando qualcosa di simile. Hai fortuna a trovare qualcosa (in particolare VS2012)? –

0

Soffia davvero una risposta, ma qui è quello che ho fatto dopo aver provato 'Escludi dal progetto' solo per scoprire che questi file sono stati cercati anche .

Tutti i file che non volevo includere erano, per fortuna, in una cartella dalla radice chiamata "Archiviato" quindi ... Ho tagliato e incollato il file sul mio desktop.

Forse è per questo che Ultra Find Extension è scomparso ... gli sviluppatori possono raggruppare tutti i file indesiderati in una cartella fuori dalla web root e rimuoverli mentre eseguono ricerche, LOL.