¿Cómo le digo a Visual Studio que excluya carpetas de Buscar en archivos?

89

Usamos subversión, por lo que tenemos subcarpetas llamadas _svn en nuestra solución. Al realizar una búsqueda en archivos, se devuelven cadenas de estas subcarpetas. ¿Hay alguna forma de decirle a Visual Studio que ignore estos archivos?

Bernardo
fuente
7
Esto me ha molestado bastante con Find in Files de Visual Studio. Como mencionó @rafbel, termino desactivando "incluir subcarpetas", pero eso acaba siendo pasos adicionales u olvidándome de desactivarlo más tarde. Sería bueno decir que busque en la carpeta raíz principal, pero ignore mi carpeta "proveedores" porque no me preocupan las bibliotecas de terceros ..
Rich Finelli
Si alguien encuentra o agrega esta pregunta a la página de UserVoice de VS, publique un enlace aquí para que todos podamos votarla.
pbarranis
Esto me vuelve loco. Recientemente descubrí la posibilidad de personalizar el cuadro desplegable "Buscar en". Nuestra solución incluye varios proyectos que componen la parte del instalador, por lo que es bueno limitar las búsquedas a esos proyectos mientras estoy trabajando en ellos. Así que creé un perfil "Buscar en" del instalador. Sin embargo, a menos que desee especificar manualmente cada carpeta y subcarpeta de cada proyecto, tengo que dejar marcada la opción "Incluir subcarpetas". Esto recoge todas las carpetas bin y obj. Muy molesto.
Brian Colavito

Respuestas:

31

Lo que puede hacer es configurar un conjunto de carpetas que se utilizarán para realizar búsquedas. En la ventana Buscar y reemplazar, en el lado derecho de la entrada "Buscar en", tiene una opción "Elegir carpetas de búsqueda" donde puede configurar esos conjuntos de carpetas.
Solo recuerde desactivar las opciones "Incluir subcarpetas" si ha agregado la carpeta raíz del proyecto.
Si no tiene cientos de carpetas, esta solución debería funcionar.

rafbel
fuente
15
No, no debería, porque explica cómo incluir carpetas en la búsqueda en lugar de excluirlas. Esa es una gran diferencia en mi humilde opinión.
Jan Palas
2
Tengo cientos de carpetas. Todos viven en uno llamado node_moduleslol
nada es necesario
23

Nunca tuve un problema con la búsqueda global hasta que nos mudamos a Visual Studio 2017 y comenzamos con las aplicaciones Angular + .net Core ... (principalmente problemas con la carpeta ENORME node_modules que se está buscando)

Descubrí que el uso de la propiedad de exclusión de MSBuild DefaultItemExcludes funciona bien para excluir del hallazgo global en Visual Studio 2017 ..

Ahora, de forma predeterminada, abro el archivo del proyecto (.csproj) para un nuevo proyecto principal en VS2017 y ajusto la propiedad de la siguiente manera para excluir los node_modules (a veces también agrego wwwroot):

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

Consulte también https://github.com/dotnet/cli/issues/7525 , allí aconsejan anteponer las carpetas para excluir y parecen usar una barra inclinada hacia adelante en lugar de una barra invertida, como esta:

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

Espero que esto ayude a cualquiera que tenga problemas con la búsqueda / búsqueda global de VS2017.

AardVark71
fuente
Muchas gracias. Es extraño que esta pregunta se haga muchas veces en SO y nadie se haya imaginado esta respuesta
Ashraf Sabry
Gracias, esta debería ser la respuesta
Dan Parker
Todos mis proyectos de Angular en Visual Studio 2017 son proyectos de "Carpetas" sin archivos de MSBuild o archivos de proyecto ( *.csprojetc.), por lo que no puedo configurarlos en DefaultItemExcludesningún lugar. ¿Soy SOL?
Dai
Esto no funciona para VS 2019. Intenté excluir el bootstrap.cssarchivo, pero de todos modos se buscó. <DefaultItemExcludes>assets/css/**;$(DefaultItemExcludes)</DefaultItemExcludes>
VDWWD
18

Desde "Buscar en archivos", en "Tipos de archivo" o "Mira estos tipos de archivo", puedes usar:

!*\ExcludeFolder\*

Ejemplo:

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

ingrese la descripción de la imagen aquí

A. Morel
fuente
Esa captura de pantalla es de VS 2019. Esta respuesta no funciona en VS 2017.
Scott Hutchinson
1
Esto es exactamente lo que estaba buscando cuando encontré este problema en VS2019. ¡Gracias!
Mass Dot Net
1
Cosas geniales. Utilizo Node y nunca quiero buscar en la carpeta node_modules. Gracias
BoundForGlory
9

Tuve este problema cuando me mudé a Windows 10 usando Visual Studio 2015 y TortoiseSVN. Anteriormente, todas las carpetas .svn estaban ocultas, por lo que no aparecían en los resultados de búsqueda. Para resolver esto, simplemente fui a las propiedades de la carpeta en el Explorador de Windows y verifiqué el atributo 'Oculto' para la carpeta .svn. Después de actualizar la vista de carpeta en Visual Studio, la carpeta .svn ya no aparece y se ignora cuando se usa Buscar.

Establecer el atributo de carpeta .svn en oculto

función brillante
fuente
Lo siento, todavía no instalé VS 2017, así que no puedo verificar esto.
brillante
1
Esto no parece funcionar en VS 2017. Además, impide que IISExpress encuentre la carpeta, por lo que también rompió cosas :(
pbarranis
Funcionando perfectamente en VS 2015 Pro. No he visto ningún efecto adverso todavía :-)
BizzyBob
5

En lugar de buscar archivos en un directorio (el directorio de su solución, en este caso), puede limitar su búsqueda a los archivos que forman parte del proyecto o la solución. Los de los directorios _svn serán ignorados.

Xavier Nodet
fuente
2
Tenemos carpetas de proyectos anidadas dentro de la solución. Así que entrar en cada uno para encontrar algo lleva mucho tiempo
Bernard
El cuadro de diálogo 'Buscar en archivos' tiene un campo de entrada 'Buscar en' que se puede establecer en 'Proyecto actual' o 'Solución completa'. ¿No es esto último útil para ti? Debo haberme perdido algo, entonces ...
Xavier Nodet
2
@XavierNodet en mi caso al menos, hay archivos que tengo en mi solución que nunca quiero buscar, pero necesito en mi solución para que se copien en el directorio de salida - ej. dispositivos de prueba u otros recursos estáticos basados ​​en texto.
Tom Lianza
5

En Visual Studio 2017, especialmente cuando uso Angular Cli, encontré que los archivos javascript generados u otros archivos de compilación se pueden agregar a su proyecto a veces sin saberlo. Esto puede causar varios dolores de cabeza, incluido agregar un montón de archivos a las búsquedas y realmente ralentizar las cosas, especialmente intellisense porque busca todos los archivos generados encima de los archivos de origen.

La forma más fácil que he encontrado para corregir esto es simplemente hacer clic derecho en la carpeta de compilación (es decir {Project}/dist) y seleccionar Exclude from Project. Esto eliminará la carpeta del proyecto, pero el contenido generado seguirá estando disponible para el tiempo de ejecución, simplemente está oculto en la interfaz de usuario.

ingrese la descripción de la imagen aquí

Si aún necesita ver los archivos, puede mostrar los directorios y archivos ocultos seleccionando Show all Fileso haciendo clic en el ícono: ingrese la descripción de la imagen aquí en la parte superior del Explorador de soluciones.

Básicamente, desea excluir todas las carpetas de compilación de su proyecto / solución.

Andy Braham
fuente
No creo que pueda "Excluir" una carpeta, solo archivos. Al menos en mi versión de Visual Studio 2017. Cuando hago clic con el botón derecho en una carpeta de mi proyecto, la opción Excluir del proyecto no aparece en el menú contextual.
Pete
1
Esta opción no está disponible para proyectos de sitios web en VS 2017.
richardtallent
@richardtallent: Verifiqué dos veces tanto en VS2017 como en VS2019 y la opción para eliminar la carpeta está allí. Consulte mi respuesta actualizada para ver una captura de pantalla donde encontrar la opción.
Andy Braham
@AndyBraham, estoy usando el tipo de proyecto WebSite (E24C65DC-7377-472B-9ABA-BC803B73C61A en el archivo de solución), que creo que puede ser un tipo de proyecto heredado que ya no está disponible en el cuadro de diálogo Nuevo proyecto. La opción "excluir" no está disponible en el menú contextual para carpetas en proyectos de este tipo. Construyo mi sitio fuera de VS usando Vue CLI / UI y Gulp, por lo que la única solución que funcionó para mí fue simplemente eliminar el proyecto de mi solución (de todos modos, uso VS Code para el código de front-end).
richardtallent
3

No creo que pueda configurar esto (después de todo, está solicitando la búsqueda de "Solución completa"), pero a menudo puede eliminar la carpeta del proyecto / ocultar el directorio en el sistema de archivos (para el tipo de proyecto Sitio web).

Lukáš Lánský
fuente