Як сказати Visual Studio виключати папки з пошуку у файлах?


89

Ми використовуємо субверсію, тому в нашому рішенні є підтеки з іменем _svn. Виконання пошуку у файлах повертає рядки з цих підпапок. Чи є спосіб сказати Visual Studio ігнорувати ці файли?


7
Це мене непокоїло з пошуком у файлах Visual Studio. Як згадував @rafbel, я в кінцевому підсумку вимикаю "включати вкладені папки", але це в кінцевому підсумку стає додатковими кроками або забуває вимкнути це пізніше. Було б непогано сказати, шукати в головній кореневій папці, але ігнорувати мою папку "постачальників", бо мене не турбують сторонні бібліотеки ..
Rich Finelli

Якщо хтось знайде або додасть це запитання на сторінку VS UserVoice, надішліть тут посилання, щоб ми всі могли проголосувати за нього!
pbarranis

Це зводить мене з розуму. Нещодавно я виявив можливість налаштування спадного вікна "Шукати в". Наше рішення включає декілька проектів, що складають частину інсталятора, тому приємно обмежити пошук лише цими проектами, поки я працюю над цим. Отже, я створив профіль "Заглянути в" програмі встановлення. Однак, якщо я не хочу вручну вказувати кожну папку та підпапку кожного проекту, я повинен залишити прапорець "Включити підпапки". Це забирає всі папки bin та obj. Дуже дратує.
Брайан

Відповіді:


31

Що ви можете зробити, це налаштувати набір папок, які будуть використовуватися для пошуку. У вікні "Знайти та замінити", праворуч від входу "Шукати", є опція "Вибрати папки пошуку", де ви можете налаштувати ці набори папок.
Просто пам’ятайте вимкнути параметри «Включити підпапки», якщо ви додали кореневу папку проекту.
Якщо у вас немає сотень папок, це рішення має спрацювати.


15
Ні, це не повинно, оскільки це пояснює, як включити папки до пошуку, а не виключати їх. Це досить велика різниця ІМХО.
Ян Палас,

2
У мене сотні папок. Усі вони живуть в одному, що називається node_modulesхахан
нічого непотрібного

23

Ніколи не виникало проблем із глобальною знахідкою, доки ми не перейшли на Visual Studio 2017 і не почали працювати з програмами Angular + .net Core ... (переважно проблеми з папкою HUGE 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.


Дуже дякую. Дивно, що це питання задають багато разів на SO, і ніхто не зрозумів цієї відповіді
Ашраф Сабрі

Дякую, це повинна бути відповідь
Ден Паркер,

Всі мої Angular-проекти у Visual Studio 2017 є проектами "Папки" без будь-яких файлів MSBuild або файлів проектів ( *.csprojі т.д.), тому я DefaultItemExcludesніде не можу встановити . Я SOL?
Dai,

Це не працює для 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 більше не відображалася і ігнорується під час використання функції Знайти!

Встановіть атрибут .svn папки як прихований


На жаль, я ще не встановив VS 2017, тому не можу перевірити це.
яскрава функція

1
Здається, це не працює у VS 2017. Далі, це заважає IISExpress знаходити папку, тому він теж зламав речі :(
pbarranis

Чудово працює у VS 2015 Pro. Я ще не бачив жодних негативних наслідків :-)
BizzyBob

5

Замість того, щоб шукати файли в каталозі (у цьому випадку каталог вашого рішення), ви можете обмежити пошук файлами, які є частиною проекту або рішення. Ті, що знаходяться в каталогах _svn, будуть ігноруватися.


2
Ми вклали папки проектів всередину рішення. Тож заходити до кожного, щоб щось знайти, витрачає час
Бернард

У діалоговому вікні "Знайти у файлах" є поле введення "Подивитись", яке можна встановити на "Поточний проект" або "Ціле рішення". Чи не корисний для вас останній? Тоді я, мабуть, щось пропустив ...
Ксав'є Нодет

2
@XavierNodet, принаймні в моєму випадку, у моєму рішенні є файли, які я ніколи не хочу шукати, але мені потрібно у своєму рішенні, щоб вони були скопійовані у вихідний каталог - напр. тестові прилади або інші статичні текстові ресурси.
Том Лянца

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, і там є можливість видалити папку. Будь ласка, перегляньте мою оновлену відповідь для знімка екрана, де можна знайти варіант.
Andy

@AndyBraham, я використовую тип проекту WebSite (E24C65DC-7377-472B-9ABA-BC803B73C61A у файлі рішення), який, на мою думку, може бути застарілим типом проекту, який більше не доступний у діалоговому вікні «Новий проект». Параметр "виключити" недоступний у контекстному меню для папок у проектах цього типу. Я будую свій сайт за межами VS, використовуючи Vue CLI / UI та Gulp, тому єдине виправлення, яке працювало для мене, це просто видалення проекту з мого рішення (я все одно використовую VS Code для інтерфейсного коду).
richardtallent

3

Я не думаю, що ви можете встановити це (врешті-решт, ви просите пошук "Ціле рішення"), але часто ви можете видалити папку з проекту / сховати каталог у файловій системі (для типу проекту веб-сайту).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.