ฉันจะบอก Visual Studio ให้แยกโฟลเดอร์ออกจาก Find in Files ได้อย่างไร


89

เราใช้การโค่นล้มดังนั้นเราจึงมีโฟลเดอร์ย่อยชื่อ _svn ในโซลูชันของเรา การค้นหาในไฟล์จะส่งคืนสตริงจากโฟลเดอร์ย่อยเหล่านี้ มีการแจ้งให้ Visual Studio ละเว้นไฟล์เหล่านี้หรือไม่?


7
สิ่งนี้ทำให้ฉันรำคาญเล็กน้อยกับ Find in Files ของ Visual Studio ดังที่ @rafbel กล่าวไว้ฉันปิดท้ายด้วยการปิด "รวมโฟลเดอร์ย่อย" แต่นั่นก็กลายเป็นขั้นตอนเพิ่มเติมหรือลืมปิดในภายหลัง จะเป็นการดีที่จะบอกว่าค้นหาโฟลเดอร์หลัก แต่ไม่สนใจโฟลเดอร์ "ผู้ขาย" ของฉันเพราะฉันไม่กังวลเกี่ยวกับไลบรารีของบุคคลที่สาม ..
Rich Finelli

หากมีใครพบหรือเพิ่มคำถามนี้ในหน้า UserVoice ของ VS โปรดโพสต์ลิงก์ที่นี่เพื่อให้เราทุกคนสามารถโหวตได้!
pbarranis

สิ่งนี้ทำให้ฉันแทบคลั่ง ฉันเพิ่งค้นพบความสามารถในการปรับแต่งช่องแบบเลื่อนลง "ดูใน" โซลูชันของเรามีหลายโครงการที่ประกอบกันเป็นส่วนของโปรแกรมติดตั้งดังนั้นจึงเป็นการดีที่จะ จำกัด การค้นหาเฉพาะโครงการเหล่านั้นในขณะที่ฉันกำลังดำเนินการอยู่ ดังนั้นฉันจึงสร้างโปรแกรมติดตั้ง "ดูใน" โปรไฟล์ อย่างไรก็ตามเว้นแต่ฉันต้องการระบุทุกโฟลเดอร์และโฟลเดอร์ย่อยของแต่ละโปรเจ็กต์ด้วยตนเองฉันต้องปล่อยให้ "รวมโฟลเดอร์ย่อย" เลือกไว้ สิ่งนี้จะดึงโฟลเดอร์ bin และ obj ทั้งหมด น่ารำคาญมาก.
Brian Colavito

คำตอบ:


31

สิ่งที่ทำได้คือตั้งค่าโฟลเดอร์ที่จะใช้ในการค้นหา ในหน้าต่างค้นหาและแทนที่ทางด้านขวามือของอินพุต "ค้นหาใน" คุณจะมีตัวเลือก "เลือกโฟลเดอร์ค้นหา" ซึ่งคุณสามารถตั้งค่าชุดโฟลเดอร์เหล่านั้นได้
อย่าลืมปิดตัวเลือก "รวมโฟลเดอร์ย่อย" หากคุณได้เพิ่มโฟลเดอร์โปรเจ็กต์รูท
หากคุณไม่มีโฟลเดอร์หลายร้อยโฟลเดอร์วิธีนี้ควรใช้งานได้


15
ไม่ควรเพราะจะอธิบายวิธีรวมโฟลเดอร์ในการค้นหาแทนที่จะยกเว้น นั่นเป็นความแตกต่างที่ยิ่งใหญ่ IMHO
ม.ค. Palas

2
ฉันมีหลายร้อยโฟลเดอร์ พวกเขาทั้งหมดอาศัยอยู่ในหนึ่งเรียกว่าnode_modulesฮ่า ๆ
nothingisnecessary

24

ไม่เคยมีปัญหากับการค้นหาทั่วโลกจนกว่าเราจะย้ายไปที่Visual Studio 2017และเริ่มต้นด้วยแอปพลิเคชัน Angular + .net Core ... (ส่วนใหญ่มีปัญหากับโฟลเดอร์ HUGE node_modules ที่กำลังค้นหา)

ฉันพบว่าการใช้คุณสมบัติการยกเว้น MSBuild DefaultItemExcludesทำงานได้ดีเพื่อแยกออกจาก global find ใน 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 global find / search


ขอบคุณมาก ๆ. แปลกที่คำถามนี้ถูกถามหลายครั้งใน SO และไม่มีใครคิดคำตอบนี้
Ashraf Sabry

ขอบคุณนี่ควรจะเป็นคำตอบ
Dan Parker

โครงการ Angular ทั้งหมดของฉันใน Visual Studio 2017 เป็นโครงการ "โฟลเดอร์" ที่ไม่มีไฟล์ MSBuild หรือไฟล์โครงการ ( *.csprojฯลฯ ) ดังนั้นฉันจึงไม่สามารถตั้งค่าDefaultItemExcludesได้ทุกที่ ฉันคือโซล?
ได

สิ่งนี้ใช้ไม่ได้กับ VS 2019 ฉันพยายามยกเว้นbootstrap.cssไฟล์ แต่ก็ถูกค้นหาอยู่ดี <DefaultItemExcludes>assets/css/**;$(DefaultItemExcludes)</DefaultItemExcludes>
VDWWD

23

จาก "ค้นหาในไฟล์" ใน "ประเภทไฟล์" หรือ "ดูประเภทไฟล์เหล่านี้" คุณสามารถใช้:

!*\ExcludeFolder\*

ตัวอย่าง:

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

ป้อนคำอธิบายภาพที่นี่


1
ภาพหน้าจอนั้นมาจาก VS 2019 คำตอบนี้ใช้ไม่ได้ใน VS 2017
Scott Hutchinson

1
นี่คือสิ่งที่ฉันกำลังมองหาเมื่อพบปัญหานี้ใน VS2019 ขอขอบคุณ!
Mass Dot Net

1
สิ่งที่ยอดเยี่ยม ฉันใช้ Node และไม่ต้องการค้นหาโฟลเดอร์ node_modules ขอบคุณ
BoundForGlory

9

ฉันมีปัญหานี้เมื่อย้ายไปใช้ Windows 10 โดยใช้ Visual Studio 2015 และ TortoiseSVN ก่อนหน้านี้โฟลเดอร์. svn ถูกซ่อนไว้ทั้งหมดจึงไม่ปรากฏในผลการค้นหา ในการแก้ปัญหานี้ฉันเพียงไปที่คุณสมบัติของโฟลเดอร์ใน Windows Explorer และตรวจสอบแอตทริบิวต์ "ซ่อน" สำหรับโฟลเดอร์. svn หลังจากรีเฟรชมุมมองโฟลเดอร์ใน Visual Studio แล้วโฟลเดอร์. svn จะไม่ปรากฏอีกต่อไปและจะถูกละเว้นเมื่อใช้ Find!

ตั้งค่าแอตทริบิวต์โฟลเดอร์. svn เป็น hidden


ขออภัยฉันยังไม่ได้ติดตั้ง VS 2017 จึงไม่สามารถตรวจสอบสิ่งนี้ได้
ฟังก์ชั่

1
ดูเหมือนว่าจะใช้ไม่ได้ใน VS 2017 นอกจากนี้ยังหยุด IISExpress จากการค้นหาโฟลเดอร์ดังนั้นมันจึงทำลายสิ่งต่างๆด้วย :(
pbarranis

ทำงานได้อย่างสมบูรณ์แบบใน VS 2015 Pro ฉันยังไม่เห็นผลกระทบใด ๆ เลย :-)
BizzyBob

5

แทนที่จะค้นหาไฟล์ในไดเร็กทอรี (ไดเร็กทอรีโซลูชันของคุณในกรณีนี้) คุณสามารถ จำกัด การค้นหาของคุณเฉพาะไฟล์ที่เป็นส่วนหนึ่งของโปรเจ็กต์หรือโซลูชัน สิ่งที่อยู่ในไดเร็กทอรี _svn จะถูกละเว้น


2
เรามีโฟลเดอร์โครงการที่ซ้อนกันอยู่ภายในโซลูชัน ดังนั้นการเข้าไปในแต่ละคนเพื่อค้นหาบางสิ่งจึงเป็นเวลาที่ใช้
เบอร์นาร์ด

กล่องโต้ตอบ "ค้นหาในไฟล์" มีช่องรายการ "ค้นหาใน" ซึ่งสามารถตั้งค่าเป็น "โครงการปัจจุบัน" หรือ "โซลูชันทั้งหมด" อย่างหลังไม่มีประโยชน์สำหรับคุณเหรอ? ฉันคงพลาดอะไรไปแล้ว ...
Xavier Nodet

2
@XavierNodet ในกรณีของฉันอย่างน้อยก็มีไฟล์ที่ฉันมีในโซลูชันที่ฉันไม่ต้องการค้นหา แต่ฉันต้องการในโซลูชันของฉันเพื่อที่จะคัดลอกไปยังไดเร็กทอรีเอาต์พุต - เช่น อุปกรณ์ทดสอบหรือทรัพยากรแบบคงที่แบบข้อความอื่น ๆ
Tom Lianza

5

ฉันพบในVisual Studio 2017โดยเฉพาะอย่างยิ่งเมื่อใช้Angular Cliว่าไฟล์ javascript ที่สร้างขึ้นหรือไฟล์ build อื่น ๆ สามารถเพิ่มลงในโปรเจ็กต์ของคุณได้ในบางครั้งโดยไม่รู้ตัว สิ่งนี้อาจทำให้เกิดอาการปวดหัวหลายอย่างรวมถึงการเพิ่มไฟล์จำนวนมากในการค้นหาและทำให้สิ่งต่างๆช้าลงโดยเฉพาะ Intellisense เนื่องจากกำลังค้นหาไฟล์ที่สร้างขึ้นทั้งหมดที่อยู่ด้านบนของไฟล์ต้นฉบับ

วิธีที่ง่ายที่สุดที่ฉันได้พบในการแก้ไขปัญหานี้คือการคลิกขวาเพียงการสร้างโฟลเดอร์ (คือ{Project}/dist) Exclude from Projectและเลือก การดำเนินการนี้จะลบโฟลเดอร์ออกจากโปรเจ็กต์ แต่เนื้อหาที่สร้างขึ้นจะยังคงพร้อมใช้งานสำหรับรันไทม์มันถูกซ่อนไว้จาก UI

ป้อนคำอธิบายภาพที่นี่

หากคุณยังต้องการดูไฟล์คุณสามารถแสดงไดเรกทอรีและไฟล์ที่ซ่อนอยู่ได้โดยเลือกShow all Filesหรือคลิกที่ไอคอน: ป้อนคำอธิบายภาพที่นี่ ที่ด้านบนของ Solution Explorer

โดยทั่วไปคุณต้องการแยกโฟลเดอร์สร้างทั้งหมดออกจากโครงการ / โซลูชันของคุณ


ฉันไม่คิดว่าคุณสามารถ "ยกเว้น" โฟลเดอร์ได้ แต่ไฟล์ อย่างน้อยก็ใน Visual Studio 2017 เวอร์ชันของฉันเมื่อฉันคลิกขวาที่โฟลเดอร์ในโครงการของฉันตัวเลือกไม่รวมจากโครงการจะไม่ปรากฏบนเมนูบริบท
พีท

1
ตัวเลือกนี้ไม่สามารถใช้ได้สำหรับโครงการเว็บไซต์ใน VS 2017
richardtallent

@richardtallent: ฉันตรวจสอบทั้งใน VS2017 & VS2019 ซ้ำสองครั้งและตัวเลือกในการลบโฟลเดอร์อยู่ที่นั่น โปรดดูคำตอบที่อัปเดตของฉันสำหรับภาพหน้าจอที่จะค้นหาตัวเลือก
Andy Braham

@AndyBraham ฉันใช้ประเภทโครงการ WebSite (E24C65DC-7377-472B-9ABA-BC803B73C61A ในไฟล์โซลูชัน) ซึ่งฉันเชื่อว่าอาจเป็นประเภทโครงการเดิมที่ไม่มีอีกต่อไปในกล่องโต้ตอบโครงการใหม่ ไม่มีตัวเลือก "ไม่รวม" ในเมนูบริบทสำหรับโฟลเดอร์ในโครงการประเภทนี้ ฉันสร้างไซต์ของฉันนอก VS โดยใช้ Vue CLI / UI และ Gulp ดังนั้นสิ่งเดียวที่ได้ผลสำหรับฉันคือเพียงแค่ลบโปรเจ็กต์ออกจากโซลูชันของฉัน (ฉันใช้ VS Code สำหรับโค้ดส่วนหน้า)
richardtallent

3

ฉันไม่คิดว่าคุณสามารถตั้งค่านี้ได้ (อย่างไรก็ตามคุณกำลังขอการค้นหา "Entire Solution") แต่บ่อยครั้งคุณสามารถลบโฟลเดอร์ออกจากโปรเจ็กต์ / ซ่อนไดเร็กทอรีในระบบไฟล์ (สำหรับประเภทโปรเจ็กต์เว็บไซต์)


0

หากคุณไม่ได้ใช้ VS2019 หรือ VS Code (ซึ่งพบวิธีแก้ปัญหานี้แล้วในคำตอบอื่น ๆ ) วิธีแก้ปัญหาคือคุณสามารถใช้การค้นหาใน Far Manager ได้โดยจะสนับสนุนมาสก์เพื่อแยกไฟล์หรือโฟลเดอร์บางรายการออกจากการค้นหา ป้อนคำอธิบายภาพที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.