Como faço para dizer ao Visual Studio para excluir pastas de Localizar em arquivos?

89

Usamos o subversion, portanto, temos subpastas chamadas _svn em nossa solução. Fazer um Find in Files retorna strings dessas subpastas. Existe alguma maneira de dizer ao Visual Studio para ignorar esses arquivos?

Bernard
fonte
7
Isso me incomodou um pouco com o Find in Files do Visual Studio. Como @rafbel mencionou, eu acabo desligando a opção "incluir subpastas", mas isso acaba sendo etapas extras ou esquecendo de desligá-la mais tarde. Seria bom dizer para pesquisar a pasta raiz principal, mas ignorar minha pasta "fornecedores" porque não estou preocupado com bibliotecas de terceiros.
Rich Finelli
Se alguém encontrar ou adicionar esta questão à página UserVoice do VS, poste um link aqui para que possamos votar a favor!
pbarranis
Isso me deixa louco. Recentemente, descobri a capacidade de personalizar a caixa suspensa "Examinar". Nossa solução inclui vários projetos que compõem a parte do instalador, então é bom limitar as pesquisas apenas a esses projetos enquanto estou trabalhando neles. Então criei um perfil "Look in" do instalador. No entanto, a menos que eu queira especificar manualmente todas as pastas e subpastas de cada projeto, tenho que deixar a opção "Incluir subpastas" marcada. Isso seleciona todas as pastas bin e obj. Muito irritante.
Brian Colavito

Respostas:

31

O que você pode fazer é configurar um conjunto de pastas que serão usadas para pesquisas. Na janela Localizar e Substituir, no lado direito da entrada "Examinar", você tem uma opção "Escolher Pastas de Pesquisa" onde pode configurar esses conjuntos de pastas.
Apenas lembre-se de desligar as opções de "Incluir subpastas" se você adicionou a pasta raiz do projeto.
Se você não tiver centenas de pastas, essa solução deve funcionar.

Rafbel
fonte
15
Não, não deveria, porque explica como incluir pastas na pesquisa em vez de excluí-las. Essa é uma grande diferença IMHO.
Jan Palas
2
Tenho centenas de pastas. Todos eles moram em um chamado node_moduleslol
nada é necessário
24

Nunca tive um problema com a descoberta global até que mudamos para o Visual Studio 2017 e começamos com os aplicativos Angular + .net Core ... (principalmente problemas com a pasta Node_modules ENORME sendo pesquisada)

Descobri que usar a propriedade de exclusão do MSBuild DefaultItemExcludes está funcionando bem para excluir da localização global no Visual studio 2017.

Eu agora, por padrão, abro o arquivo de projeto (.csproj) para um novo projeto central no VS2017 e ajusto a propriedade da seguinte forma para excluir os node_modules (às vezes eu adiciono wwwroot também):

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

Veja também https://github.com/dotnet/cli/issues/7525 , lá eles aconselham adicionar as pastas a serem excluídas e parecem usar uma barra em vez de uma barra invertida, como este:

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

Espero que isso ajude qualquer pessoa com problemas de localização / pesquisa global VS2017.

AardVark71
fonte
Muito obrigado. Estranho que esta pergunta seja feita muitas vezes no SO e ninguém tenha percebido essa resposta
Ashraf Sabry
Obrigado, esta deve ser a resposta
Dan Parker
Todos os meus projetos Angular no Visual Studio 2017 são projetos de "Pastas" sem nenhum arquivo MSBuild ou arquivo de projeto ( *.csprojetc), então não posso definir em DefaultItemExcludesqualquer lugar. Eu sou SOL?
Dai
Isso não deve funcionar para o VS 2019. Tentei excluir o bootstrap.cssarquivo, mas ele foi pesquisado mesmo assim. <DefaultItemExcludes>assets/css/**;$(DefaultItemExcludes)</DefaultItemExcludes>
VDWWD 01 de
23

Em "Localizar em arquivos", em "Tipos de arquivo" ou "Olhe para estes tipos de arquivo", você pode usar:

!*\ExcludeFolder\*

Exemplo:

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

insira a descrição da imagem aqui

A. Morel
fonte
1
Essa captura de tela é do VS 2019. Esta resposta não funciona no VS 2017.
Scott Hutchinson
1
Isso é exatamente o que eu estava procurando quando me deparei com esse problema no VS2019. Obrigado!
Mass Dot Net
1
Coisas incríveis. Eu uso o Node e nunca quero pesquisar a pasta node_modules. Obrigado
BoundForGlory
9

Tive esse problema ao mudar para o Windows 10 usando Visual Studio 2015 e TortoiseSVN. Anteriormente, as pastas .svn estavam todas ocultas, portanto não apareciam nos resultados da pesquisa. Para resolver isso, simplesmente fui até as propriedades da pasta no Windows Explorer e verifiquei o atributo 'Oculto' da pasta .svn. Depois de atualizar a visualização da pasta no Visual Studio, a pasta .svn não aparece mais e é ignorada ao usar Find!

Defina o atributo da pasta .svn como oculto

função brilhante
fonte
Desculpe, não instalei o VS 2017 ainda, então não posso verificar isso.
Brightfunction
1
Isso não parece funcionar no VS 2017. Além disso, ele impede que o IISExpress encontre a pasta, portanto, também interrompe algumas coisas :(
pbarranis
Funcionando perfeitamente no VS 2015 Pro. Eu não vi nenhum efeito adverso ainda :-)
BizzyBob
5

Em vez de pesquisar arquivos em um diretório (o diretório da sua solução, neste caso), você pode limitar sua pesquisa aos arquivos que fazem parte do projeto ou da solução. Aqueles nos diretórios _svn serão então ignorados.

Xavier Nodet
fonte
2
Aninhamos pastas de projetos dentro da solução. Então, entrar em cada um para encontrar algo consome tempo
Bernard,
A caixa de diálogo 'Localizar em arquivos' tem um campo de entrada 'Procurar em' que pode ser definido como 'Projeto atual' ou 'Solução inteira'. Este último não é útil para você? Devo ter perdido alguma coisa, então ...
Xavier Nodet
2
@XavierNodet, pelo menos no meu caso, existem arquivos que tenho na minha solução que nunca quero pesquisar, mas preciso na minha solução para que sejam copiados para o diretório de saída - ex. testar acessórios ou outros recursos estáticos baseados em texto.
Tom Lianza de
5

Descobri no Visual Studio 2017, especialmente ao usar Angular Cli, que os arquivos javascript gerados ou outros arquivos de compilação podem ser adicionados ao seu projeto, às vezes sem saber. Isso pode causar várias dores de cabeça, incluindo adicionar um monte de arquivos às pesquisas e realmente desacelerar as coisas, especialmente o intellisense porque está pesquisando todos os arquivos gerados no topo dos arquivos de origem.

A maneira mais fácil que descobri de corrigir isso é simplesmente clicar com o botão direito do mouse na pasta de compilação (ou seja {Project}/dist) e selecionar Exclude from Project. Isso removerá a pasta do projeto, mas o conteúdo gerado ainda estará disponível para o tempo de execução, apenas oculto na IU.

insira a descrição da imagem aqui

Se você ainda precisa ver os arquivos, pode mostrar diretórios e arquivos ocultos selecionando Show all Filesou clicando no ícone: insira a descrição da imagem aqui na parte superior do Gerenciador de Soluções.

Basicamente, você deseja excluir todas as pastas de construção de seu projeto / solução.

Andy Braham
fonte
Não acho que você possa "Excluir" uma pasta, apenas arquivos. Pelo menos na minha versão do Visual Studio 2017. Quando clico com o botão direito do mouse em uma pasta em meu projeto, a opção Excluir do projeto não aparece no menu de contexto.
Pete
1
Esta opção não está disponível para projetos de Web Site no VS 2017.
richardtallent
@richardtallent: Verifiquei duas vezes em VS2017 e VS2019 e a opção de remover a pasta está lá. Por favor, veja minha resposta atualizada para uma captura de tela onde encontrar a opção.
Andy Braham
@AndyBraham, estou usando o tipo de projeto WebSite (E24C65DC-7377-472B-9ABA-BC803B73C61A no arquivo de solução), que acredito ser um tipo de projeto legado que não está mais disponível na caixa de diálogo Novo projeto. A opção "excluir" não está disponível no menu de contexto para pastas em projetos deste tipo. Eu construí meu site fora do VS usando Vue CLI / UI e Gulp, então o único conserto que funcionou para mim foi apenas remover o projeto da minha solução (eu uso VS Code para o código de front-end de qualquer maneira).
richardtallent
3

Não acho que você possa definir isso (afinal, você está pedindo a busca "Solução Inteira"), mas frequentemente você pode remover a pasta do projeto / ocultar o diretório no sistema de arquivos (para tipo de projeto de Web Site).

Lukáš Lánský
fonte
0

Se você não estiver usando VS2019 ou VS Code (para o qual a solução já foi encontrada em outras respostas), como alternativa, você pode usar a pesquisa no Far Manager, ele oferece suporte a máscaras para excluir certos arquivos ou pastas da pesquisa. insira a descrição da imagem aqui

Evorios
fonte