Làm cách nào để yêu cầu Visual Studio loại trừ các thư mục khỏi Tìm trong Tệp?


89

Chúng tôi sử dụng subversion nên chúng tôi có các thư mục con có tên _svn trong giải pháp của chúng tôi. Thực hiện Tìm trong Tệp trả về các chuỗi từ các thư mục con này. Có cách nào để yêu cầu Visual Studio bỏ qua các tệp này không?


7
Điều này đã làm phiền tôi một chút với Tìm trong tệp của Visual Studio. Như @rafbel đã đề cập, tôi kết thúc việc tắt "bao gồm các thư mục con" nhưng đó chỉ là các bước bổ sung hoặc quên tắt sau đó. Nó muốn được tốt đẹp để nói tìm kiếm trên thư mục gốc chính, nhưng bỏ qua của tôi "nhà cung cấp" thư mục vì tôi không lo lắng về thư viện của bên thứ 3 ..
Giàu Finelli

Nếu ai đó tìm thấy hoặc thêm câu hỏi này vào trang UserVoice của VS, vui lòng đăng một liên kết ở đây để tất cả chúng ta có thể ủng hộ nó!
pbarranis

Điều này khiến tôi phát điên. Gần đây tôi đã phát hiện ra khả năng tùy chỉnh hộp thả xuống "Tìm trong". Giải pháp của chúng tôi bao gồm một số dự án tạo nên phần trình cài đặt, vì vậy, thật tuyệt khi giới hạn tìm kiếm chỉ trong những dự án đó trong khi tôi đang làm việc với nó. Vì vậy, tôi đã tạo một hồ sơ "Tìm trong" Trình cài đặt. Tuy nhiên, trừ khi tôi muốn chỉ định thủ công mọi thư mục và thư mục con của mỗi dự án, tôi phải chọn "Bao gồm các thư mục con". Thao tác này sẽ chọn tất cả các thư mục bin và obj. Rất phiền phức.
Brian Colavito

Câu trả lời:


31

Những gì bạn có thể làm là thiết lập một tập hợp các thư mục sẽ được sử dụng để tìm kiếm. Trong cửa sổ Tìm và Thay thế, ở phía bên phải của mục nhập "Tìm trong", bạn có tùy chọn "Chọn Thư mục Tìm kiếm", nơi bạn có thể thiết lập các bộ thư mục đó.
Chỉ cần nhớ tắt tùy chọn "Bao gồm các thư mục con" nếu bạn đã thêm thư mục dự án gốc.
Nếu bạn không có hàng trăm thư mục, giải pháp này sẽ hoạt động.


15
Không, không nên vì nó giải thích cách đưa các thư mục vào tìm kiếm thay vì loại trừ chúng. Đó là một sự khác biệt khá lớn IMHO.
Jan Palas

2
Tôi có hàng trăm thư mục. Tất cả đều sống trong một nơi được gọi là node_moduleslol
cần thiết gì

23

Chưa bao giờ gặp sự cố với tìm kiếm toàn cầu cho đến khi chúng tôi chuyển sang Visual Studio 2017 và bắt đầu với các ứng dụng Angular + .net Core ... (chủ yếu là sự cố với thư mục HUGE node_modules đang được tìm kiếm)

Tôi thấy rằng việc sử dụng thuộc tính loại trừ MSBuild DefaultItemExcludes đang hoạt động tốt để loại trừ khỏi toàn cầu tìm trong Visual studio 2017..

Bây giờ, theo mặc định, tôi mở tệp dự án (.csproj) cho một dự án lõi mới trong VS2017 và điều chỉnh thuộc tính như sau để loại trừ node_modules (đôi khi tôi cũng thêm cả wwwroot):

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

Xem thêm https://github.com/dotnet/cli/issues/7525 , ở đó họ khuyên nên thêm trước các thư mục để loại trừ và dường như sử dụng dấu gạch chéo lên phía trước thay vì dấu gạch chéo ngược, như thế này:

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

Hy vọng điều này sẽ giúp bất kỳ ai gặp sự cố với tìm kiếm / tìm kiếm toàn cầu VS2017.


Cảm ơn rất nhiều. Weird rằng câu hỏi này được hỏi nhiều lần trên SO và không ai tìm câu trả lời này
Ashraf Sabry

Cảm ơn, đây sẽ là câu trả lời
Dan Parker

Tất cả các dự án Angular của tôi trong Visual Studio 2017 đều là dự án "Thư mục" không có bất kỳ tệp MSBuild hoặc tệp dự án nào ( *.csprojv.v.), vì vậy tôi không thể đặt ở DefaultItemExcludesbất kỳ đâu. Tôi có phải là SOL không?
Dai

Điều này không hoạt động cho VS 2019. Tôi đã cố gắng loại trừ bootstrap.csstệp nhưng nó vẫn được tìm kiếm. <DefaultItemExcludes>assets/css/**;$(DefaultItemExcludes)</DefaultItemExcludes>
VDWWD

18

Từ "Tìm trong tệp", trong "Loại tệp" hoặc "Xem các loại tệp này", bạn có thể sử dụng:

!*\ExcludeFolder\*

Thí dụ:

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

nhập mô tả hình ảnh ở đây


Ảnh chụp màn hình đó là từ VS 2019. Câu trả lời này không hoạt động trong VS 2017.
Scott Hutchinson

1
Đây chính xác là những gì tôi đang tìm kiếm, khi tôi gặp sự cố này trong VS2019. Cảm ơn bạn!
Mass Dot Net

1
Công cụ tuyệt vời. Tôi sử dụng Node và tôi không bao giờ muốn tìm kiếm thư mục node_modules. Cảm ơn
BoundForGlory

9

Tôi gặp sự cố này khi chuyển sang Windows 10 bằng Visual Studio 2015 và TortoiseSVN. Trước đây các thư mục .svn đều bị ẩn nên không xuất hiện trong kết quả tìm kiếm. Để giải quyết vấn đề này, tôi chỉ cần đi đến thuộc tính thư mục trong Windows Explorer và kiểm tra thuộc tính 'Ẩn' cho thư mục .svn. Sau khi làm mới dạng xem thư mục trong Visual Studio, thư mục .svn không còn xuất hiện nữa và bị bỏ qua khi sử dụng Tìm!

Đặt thuộc tính thư mục .svn thành ẩn


Xin lỗi, tôi chưa cài đặt VS 2017 nên không thể kiểm tra.
sáng

1
Điều này dường như không hoạt động trong VS 2017. Hơn nữa, nó ngăn IISExpress tìm thấy thư mục, vì vậy nó cũng bị
hỏng

Hoạt động hoàn hảo trong VS 2015 Pro. Tôi chưa thấy bất kỳ tác dụng phụ chưa :-)
BizzyBob

5

Thay vì tìm kiếm các tệp trong một thư mục (trong trường hợp này là thư mục giải pháp của bạn), bạn có thể giới hạn tìm kiếm của mình đối với các tệp là một phần của dự án hoặc giải pháp. Do đó, những người trong thư mục _svn sẽ bị bỏ qua.


2
Chúng tôi có các thư mục dự án lồng nhau bên trong giải pháp. Vì vậy, đi vào từng cái để tìm một cái gì đó là thời gian tích lũy
Bernard

Hộp thoại 'Tìm trong Tệp' có trường nhập 'Tìm trong' có thể được đặt thành 'Dự án hiện tại' hoặc 'Toàn bộ Giải pháp'. Cái sau không hữu ích cho bạn sao? Tôi hẳn đã bỏ lỡ điều gì đó, sau đó ...
Xavier Nodet

2
@XavierNodet trong trường hợp của tôi ít nhất, có những tệp tôi có trong giải pháp của mình mà tôi không bao giờ muốn tìm kiếm, nhưng tôi cần trong giải pháp của mình để chúng được sao chép vào thư mục đầu ra - ví dụ: đồ đạc thử nghiệm hoặc các tài nguyên tĩnh, dựa trên văn bản khác.
Tom Lianza

5

Tôi nhận thấy trong Visual Studio 2017 đặc biệt là khi sử dụng Angular Cli rằng các tệp javascript đã tạo hoặc các tệp xây dựng khác đôi khi có thể được thêm vào dự án của bạn một cách vô tình. Điều này có thể gây ra một số vấn đề đau đầu bao gồm thêm một loạt tệp vào tìm kiếm và thực sự làm chậm mọi thứ, đặc biệt là intellisense vì nó đang tìm kiếm tất cả các tệp được tạo trên đầu các tệp nguồn.

Cách dễ nhất mà tôi đã tìm thấy để sửa lỗi này là chỉ cần nhấp chuột phải vào thư mục xây dựng (tức là {Project}/dist) và chọn Exclude from Project. Thao tác này sẽ xóa thư mục khỏi dự án nhưng nội dung được tạo vẫn có sẵn trong thời gian chạy, nó chỉ bị ẩn khỏi giao diện người dùng.

nhập mô tả hình ảnh ở đây

Nếu bạn vẫn cần xem các tệp, bạn có thể hiển thị các thư mục và tệp ẩn bằng cách chọn Show all Fileshoặc nhấp vào Biểu tượng: nhập mô tả hình ảnh ở đây trên đầu Trình khám phá Giải pháp.

Về cơ bản, bạn muốn loại trừ tất cả các thư mục xây dựng khỏi dự án / giải pháp của mình.


Tôi không nghĩ rằng bạn có thể "Loại trừ" một thư mục, chỉ các tệp. Ít nhất là trên phiên bản Visual Studio 2017. Khi tôi bấm chuột phải vào thư mục trong dự án của mình, tùy chọn Loại trừ khỏi Dự án không xuất hiện trên menu ngữ cảnh.
Pete

1
Tùy chọn này không khả dụng cho các dự án Trang web trong VS 2017.
richardtallent

@richardtallent: Tôi đã kiểm tra kỹ cả trong VS2017 & VS2019 và tùy chọn xóa thư mục ở đó. Vui lòng xem câu trả lời cập nhật của tôi để biết ảnh chụp màn hình nơi tìm tùy chọn.
Andy Braham

@AndyBraham, tôi đang sử dụng loại dự án WebSite (E24C65DC-7377-472B-9ABA-BC803B73C61A trong tệp giải pháp), tôi tin rằng có thể là loại dự án kế thừa không còn khả dụng trong hộp thoại Dự án mới. Tùy chọn "loại trừ" không có sẵn trong menu ngữ cảnh cho các thư mục trong các dự án thuộc loại này. Tôi xây dựng trang web của mình bên ngoài VS bằng cách sử dụng Vue CLI / UI và Gulp, vì vậy, cách khắc phục duy nhất phù hợp với tôi là chỉ xóa dự án khỏi giải pháp của tôi (dù sao thì tôi cũng sử dụng VS Code cho mã front-end).
richardtallent

3

Tôi không nghĩ rằng bạn có thể thiết lập điều này (sau tất cả, bạn đang yêu cầu tìm kiếm "Toàn bộ Giải pháp"), nhưng thường thì bạn có thể xóa thư mục khỏi dự án / ẩn thư mục trong hệ thống tệp (đối với loại dự án Trang web).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.