Как сообщить Visual Studio об исключении папок из поиска в файлах?

89

Мы используем Subversion, поэтому в нашем решении есть подпапки с именем _svn. Выполнение поиска в файлах возвращает строки из этих подпапок. Есть ли способ указать Visual Studio игнорировать эти файлы?

Бернар
источник
7
Это меня немного обеспокоило с помощью функции поиска в файлах Visual Studio. Как упоминалось в @rafbel, я в конечном итоге отключил «включать подпапки», но это просто привело к дополнительным действиям или забыв отключить его позже. Было бы неплохо сказать, что ищите в основной корневой папке, но игнорируйте мою папку "vendors", потому что я не беспокоюсь о сторонних библиотеках ..
Рич Финелли
Если кто-то найдет или добавит этот вопрос на страницу VS UserVoice, разместите ссылку здесь, чтобы мы все могли проголосовать за нее!
pbarranis
Это сводит меня с ума. Недавно я обнаружил возможность настройки раскрывающегося списка «Искать в». Наше решение включает в себя несколько проектов, составляющих часть установщика, поэтому было бы неплохо ограничить поиск только этими проектами, пока я над ним работаю. Итак, я создал профиль установщика «Заглянуть внутрь». Однако, если я не хочу вручную указывать каждую папку и подпапку каждого проекта, я должен оставить флажок «Включить подпапки». Это подберет все папки bin и obj. Очень надоедливый.
Брайан

Ответы:

31

Что вы можете сделать, так это настроить набор папок, которые будут использоваться для поиска. В окне «Найти и заменить» с правой стороны от поля «Искать в» у вас есть опция «Выбрать папки для поиска», где вы можете настроить эти наборы папок.
Просто не забудьте отключить опцию «Включить подпапки», если вы добавили корневую папку проекта.
Если у вас нет сотен папок, это решение должно работать.

рафбель
источник
15
Нет, не следует, потому что в нем объясняется, как включать папки в поиск, а не исключать их. ИМХО, это довольно большая разница.
Ян Палас
2
У меня сотни папок. Все они живут в одном node_modulesлол
ничего лишнего
23

Никогда не было проблем с глобальным поиском, пока мы не перешли на Visual Studio 2017 и не начали с приложений Angular + .net Core ... (в основном проблемы с поиском в ОГРОМНОЙ папке node_modules)

Я обнаружил, что использование свойства исключения MSBuild DefaultItemExcludes отлично работает для исключения из глобального поиска в Visual Studio 2017 ..

Теперь я по умолчанию открываю файл проекта (.csproj) для нового основного проекта в VS2017 и настраиваю свойство следующим образом, чтобы исключить node_modules (иногда я также добавляю wwwroot):

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

См. Также https://github.com/dotnet/cli/issues/7525 , там они советуют добавлять папки для исключения и, похоже, использовать косую черту вместо обратной, например:

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

Надеюсь, это поможет любому, у кого возникают проблемы с глобальным поиском / поиском VS2017.

АардВарк71
источник
Огромное спасибо. Странно, что этот вопрос задают много раз на SO, и никто не придумал этого ответа
Ашраф Сабри
Спасибо, это должен быть ответ
Дэн Паркер
Все мои проекты Angular в Visual Studio 2017 являются проектами «Папки» без каких-либо файлов MSBuild или файлов проекта (и *.csprojт.д.), поэтому я не могу ничего установить DefaultItemExcludes. Я SOL?
Дай
Это не должно работать для VS 2019. Я попытался исключить bootstrap.cssфайл, но он все равно был найден. <DefaultItemExcludes>assets/css/**;$(DefaultItemExcludes)</DefaultItemExcludes>
VDWWD,
19

Из «Найти в файлах», «Типы файлов» или «Посмотрите на эти типы файлов» вы можете использовать:

!*\ExcludeFolder\*

Пример:

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

введите описание изображения здесь

А. Морель
источник
Этот снимок экрана взят из VS 2019. Этот ответ не работает в VS 2017.
Скотт Хатчинсон,
1
Это именно то, что я искал, когда столкнулся с этой проблемой в VS2019. Спасибо!
Mass Dot Net
1
Классный материал. Я использую Node и никогда не хочу искать в папке node_modules. Спасибо
BoundForGlory
9

У меня возникла эта проблема при переходе на Windows 10 с использованием Visual Studio 2015 и TortoiseSVN. Раньше все папки .svn были скрыты, поэтому не отображались в результатах поиска. Чтобы решить эту проблему, я просто зашел в свойства папки в проводнике Windows и проверил атрибут «Скрытый» для папки .svn. После обновления представления папки в Visual Studio папка .svn больше не отображается и игнорируется при использовании Find!

Установить атрибут папки .svn как скрытый

яркая функция
источник
Извините, я еще не установил VS 2017, поэтому не могу это проверить.
brightfunction 01
1
Похоже, это не работает в VS 2017. Кроме того, это мешает IISExpress найти папку, поэтому он тоже сломал материал :(
pbarranis
Отлично работает в VS 2015 Pro. Я еще не
заметил
5

Вместо поиска файлов в каталоге (в данном случае - в каталоге решения) вы можете ограничить поиск файлами, которые являются частью проекта или решения. Таким образом, каталоги _svn будут проигнорированы.

Ксавье Ноде
источник
2
Внутри решения есть вложенные папки проектов. Так что на то, чтобы найти что-то в каждом из них, уходит много времени,
Бернард,
В диалоговом окне «Найти в файлах» есть поле ввода «Искать в», в котором можно указать «Текущий проект» или «Все решение». Разве последнее не полезно для вас? Я, должно быть, что-то пропустил, тогда ...
Ксавье Ноде
2
@XavierNodet, по крайней мере, в моем случае, в моем решении есть файлы, которые я никогда не хочу искать, но мне нужно в моем решении, чтобы они были скопированы в выходной каталог - например. тестовые приборы или другие статические текстовые ресурсы.
Tom Lianza,
5

Я обнаружил в Visual Studio 2017, особенно при использовании Angular Cli что сгенерированные файлы javascript или другие файлы сборки могут быть добавлены в ваш проект иногда по незнанию. Это может вызвать несколько головных болей, включая добавление кучи файлов для поиска и действительно замедление работы, особенно intellisense, поскольку он выполняет поиск всех сгенерированных файлов поверх исходных файлов.

Самый простой способ исправить это - просто щелкнуть правой кнопкой мыши папку сборки (т.е. {Project}/dist) и выбрать Exclude from Project. Это удалит папку из проекта, но сгенерированное содержимое будет по-прежнему доступно для выполнения, оно просто скрыто от пользовательского интерфейса.

введите описание изображения здесь

Если вам все еще нужно видеть файлы, вы можете показать скрытые каталоги и файлы, выбрав Show all Filesили щелкнув значок: введите описание изображения здесь в верхней части обозревателя решений.

По сути, вы хотите исключить все папки сборки из своего проекта / решения.

Энди Брэм
источник
Я не думаю, что вы можете «исключить» папку, только файлы. По крайней мере, в моей версии Visual Studio 2017. Когда я щелкаю правой кнопкой мыши папку в моем проекте, параметр «Исключить из проекта» не отображается в контекстном меню.
Пит
1
Этот параметр недоступен для проектов веб-сайтов в VS 2017.
richardtallent
@richardtallent: я дважды проверил как в VS2017, так и в VS2019, и есть возможность удалить папку. См. Мой обновленный ответ на снимок экрана, где найти эту опцию.
Энди
@AndyBraham, я использую тип проекта WebSite (E24C65DC-7377-472B-9ABA-BC803B73C61A в файле решения), который, как мне кажется, может быть устаревшим типом проекта, который больше не доступен в диалоговом окне «Новый проект». Опция «исключить» недоступна в контекстном меню для папок в проектах этого типа. Я создаю свой сайт вне VS, используя Vue CLI / UI и Gulp, поэтому единственное исправление, которое сработало для меня, - это просто удалить проект из моего решения (я все равно использую VS Code для внешнего кода).
richardtallent
3

Я не думаю, что вы можете установить это (в конце концов, вы запрашиваете поиск «Все решение»), но часто вы можете удалить папку из проекта / скрыть каталог в файловой системе (для типа проекта веб-сайт).

Лукаш Ланский
источник